如何反序列化包含对象的JSON数组,该对象包含JSON数组的数组..NET和c#

本文关键字:数组 对象 JSON 包含 NET 反序列化 | 更新日期: 2023-09-27 18:13:00

如何使用c#和JSON将以下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框架持开放态度,如果它能使事情变得更容易。

如何反序列化包含对象的JSON数组,该对象包含JSON数组的数组..NET和c#

使用Json。净

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; }
}

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

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

然后你可以使用点表示法访问JSON的成员,像这样:

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

例如,这将返回数字100473。