Làm thế nào để deserialize những thứ này?

lập trình


Cần phải động vì các hàng là động. Cũng không thể sử dụng dll của bên thứ 3 khác vì ứng dụng là .net 3.5. Tôi đang sử dụng JavaScriptSerializer

JSON
{
 "0": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "1": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "failed": 0
}

Những gì tôi đã thử:

Với jsonconvert. Nhưng cần thiết để tạo một lớp độc lập vì ứng dụng là khung .net 3.5 và không hoạt động với newtown.json mới hơn

Đã thử điều này nhưng không nhận được bất kỳ hàng nào.

C#
public class SearchIndex
{
    public string caseNumber { get; set; }
    public string name { get; set; }
    public int? birthYear { get; set; }
    public string caseLocation { get; set; }
    public string caseType { get; set; }
    public DateTime? dateFiled { get; set; }
    public string type { get; set; }
    public string color { get; set; }
}

Giải pháp 1

Bạn có thể tạo một lớp độc lập cho Json của mình bằng tính năng Visual Studio. Tạo một lớp C# trống, sao chép JSON của bạn vào bảng nhớ tạm, sau đó sử dụng mục menu Chỉnh sửa > Dán Đặc biệt > Dán JSON dưới dạng các lớp – và bạn nhận được mã C# cho JSON của mình. Hãy theo liên kết bên dưới để tạo lớp cho quá trình khử lưu huỳnh. Chuyển đổi các lớp JSON thành C# bằng cách sử dụng tính năng Dán JSON làm lớp[^]

Giải pháp 2

Tôi đã làm. Vì phản hồi động từ JSON có dạng số nên thuộc tính cũng hiển thị dạng số. Cần phải là một lớp có thể tiếp thu nhiều phản hồi JSON

lớp công khai Rootobject
{
công khai _0 _0 { được; bộ; }
công khai _1 _1 { được; bộ; }
công khai _2 _2 { được; bộ; }
công khai _3 _3 { được; bộ; }
công khai _4 _4 { được; bộ; }
công khai _5 _5 { được; bộ; }
công khai _6 _6 { được; bộ; }
công khai _7 _7 { được; bộ; }
công khai _8 _8 { được; bộ; }
công khai _9 _9 { được; bộ; }
công khai _10 _10 { được; bộ; }
công khai _11 _11 { được; bộ; }
công khai _12 _12 { được; bộ; }
int công khai bị lỗi { get; bộ; }
}

lớp công khai _0
{
trường hợp chuỗi công khaiNumber { get; bộ; }
tên chuỗi công khai { get; bộ; }
chuỗi công khai năm sinhYear { get; bộ; }
chuỗi công khai caseLocation { get; bộ; }
chuỗi công khai caseType { get; bộ; }
chuỗi công khai dateFiled { get; bộ; }
loại chuỗi công khai { get; bộ; }
Truy vấn truy vấn công khai { get; bộ; }
màu chuỗi công khai { get; bộ; }
chuỗi công khai[] tên { được; bộ; }
thứ hạng chuỗi công khai { get; bộ; }
công khai int s { được; bộ; }
}

Truy vấn lớp công khai
{
chuỗi công khai firstName { get; bộ; }
chuỗi công khai LastName { get; bộ; }
chuỗi công khai dateOfBirth { get; bộ; }
tập tin chuỗi công khaiDateBegin { get; bộ; }
tập tin chuỗi công khaiDateEnd { get; bộ; }
}

lớp công khai _1
{
trường hợp chuỗi công khaiNumber { get; bộ; }
tên chuỗi công khai { get; bộ; }
chuỗi công khai năm sinhYear { get; bộ; }
chuỗi công khai caseLocation { get; bộ; }
chuỗi công khai caseType { get; bộ; }
chuỗi công khai dateFiled { get; bộ; }
loại chuỗi công khai { get; bộ; }
truy vấn Query1 công khai { get; bộ; }
màu chuỗi công khai { get; bộ; }
chuỗi công khai[] tên { được; bộ; }
thứ hạng chuỗi công khai { get; bộ; }
công khai int s { được; bộ; }
}

lớp công khai Query1
{
chuỗi công khai firstName { get; bộ; }
chuỗi công khai LastName { get; bộ; }
chuỗi công khai dateOfBirth { get; bộ; }
tập tin chuỗi công khaiDateBegin { get; bộ; }
tập tin chuỗi công khaiDateEnd { get; bộ; }
}….

コメント

タイトルとURLをコピーしました