0

如何使用 C# 和 Json.NET 将以下 JSON 反序列化为自定义对象:

[ {
    'data': [
        [ '100473','3481282801.0' ],
        [ '100472','3481275600.0' ],
        [ '100471','3481273800.0' ],
        [ '100470','3481263900.0' ],
        [ '100469','3481263000.0' ]
    ],
    'error': '',
    'statement_time': 0.00440700000000000030,
    'total_time': 0.00475200000000000010
} ]

它是一个包含单个对象的数组。为了使事情更有趣,该对象包含一个数组数组。(不幸的是,我无法控制格式。)我对 JSON 比较陌生,并认为我会尝试 Json.NET。如果它能让事情变得更容易,我对其他 JSON 框架持开放态度。

4

2 回答 2

4

使用 Json.Net

var result = JsonConvert.DeserializeObject<List<MyObject>>(str);

public class MyObject
{
    public List<List<string>> data { get; set; }
    public string error { get; set; }
    public double statement_time { get; set; }
    public double total_time { get; set; }
}
于 2013-05-10T21:48:59.220 回答
0

如果您使用 C# 4.0 或更高版本,请使用动态对象:

dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonstring);

然后,您可以使用点符号访问 JSON 的成员,如下所示:

string s = json[0].data[0][0][1];

例如,这将返回您的号码 100473。

于 2013-05-10T21:51:12.923 回答