Deserialize Json like { List : { [ ... ], [ ... ] } }



这是我与JSON的第一项工作。我已经在Visual Studio Project中安装了JSON.NET,并用来挑选一些简单的字符串:

{
      "A":"1",
      "B":"2",
      "C":"3"
}

使用此代码:

JToken token = JObject.Parse("{ "A":"1","B":"2","C":"3"}";
string aValue = token.SelectToken("A");
string aValue = token.SelectToken("B");
string aValue = token.SelectToken("C");

,但我不知道该如何处理这样的JSON:

{
     "LIST":[
          {
               "A":"value1",
               "B":"value1",
               "C":"value1"
          }
          {
               "A":"value2",
               "B":"value2",
               "C":"value2"
          }
          {
               "A":"value3",
               "B":"value3",
               "C":"value3"
          }
     ],
     "D":"value4",
     "E":"value5",
     "F":"value6"
}

如何获取类型的所有元素和其他变量(例如D,E和F?

谢谢

最简单的方法是创建对象并将其逐个序列化:

public class Parent
{
    public Child[] LIST { get; set; }
    public string D { get; set; }
    public string E { get; set; }
    public string F { get; set; }
}
public class Child
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
}

一旦定义了课程,请将您的JSON划分为:

var p = JsonConvert.DeserializeObject<Parent>(json);

@贾斯汀的答案很好,效果很好。但是,如果您想像现在一样继续使用Linq-to-json API样式,这就是您可以获取所有信息的方法:

JToken token = JToken.Parse(jsonString);
foreach (JToken t in token["LIST"])
{
    Console.WriteLine(t["A"]);
    Console.WriteLine(t["B"]);
    Console.WriteLine(t["C"]);
}
Console.WriteLine(token["D"]);
Console.WriteLine(token["E"]);
Console.WriteLine(token["F"]);

相关内容

  • 没有找到相关文章

最新更新