使用Json.NET反序列化JSON数组

时间:2015-06-02 10:03:08

标签: json.net

如何使用Json.NET将this JSON解析为C#集合?

{
    "3396": [{
        "id": 767570,
        "t": {
            "0-43": [{
                "id": 71968108,
                "n": "No",
                "v": 1.55,
                "bt": 1
            }, {

3 个答案:

答案 0 :(得分:0)

在C#中创建模型:

public class YourModelJSON
{
    [JsonProperty("yourmodel")]
    public YourModel YourModel { get; set; }
}

public class YourModel
{
    [JsonProperty("id")]
    public string myId{ get; set; }

    [JsonProperty("t")]
    public string myT { get; set; }

    ...
}

然后用你的json反序列化:

JsonConvert.DeserializeObject<List<YourModelJson>>(json);

答案 1 :(得分:0)

我认为你很难把这个 json放到课堂上,所以我在这里寻找动态解决方案:

dynamic result = JsonConvert.DeserializeObject(json); // json -> escaped string
var array3396 = result["3396"];
var arrayT = array3396[0]["t"];
var array043 = arrayT["0-43"][0];
var id = array043["id"]; // output: 71968108

答案 2 :(得分:0)

如下:

                dynamic data = h.GetDynamicJSON(urlDet);
                if (data != null)
                {
                    foreach (var d in data)
                    {
                        var json = JsonConvert.SerializeObject(d.Value);
                        var obj = JsonConvert.DeserializeObject<List<Details>>(json);

                    }
                }

将源作为动态对象,然后序列化“动态命名”值,并将其反序列化为强类型对象。