使用JSON.NET使用分层数据反序列化动态JSON字符串

时间:2018-03-26 12:17:28

标签: c# json json.net

我是这样的JSON

dynamic myJSON=jObject.parse(JSONstring);

在这里,您可以看到它在子节点中的每个级别维护层次结构。我的方案是将此动态JSON转换为可数据行

对于deserilising,这是我尝试的方式

myJSON.id

但是当我尝试value entered is: 03/27/2018 3:03 PM时,它会触发像id不存在的错误

如果children数组有一些元素,我的工厂是什么,调用另一个函数来获取其成员并添加到数据表。但是如何从dyanmic json字符串中获取这些字段。

1 个答案:

答案 0 :(得分:0)

你可以这样使用

 public class Child2
 {
  public int id { get; set; }
  public string name { get; set; }
  public int parentID { get; set; }
  public bool hasChildren { get; set; }
  public List<object> children { get; set; }
 }

public class Child
 {
  public int id { get; set; }
  public string name { get; set; }
  public int paretnID { get; set; }
  public bool hasChildren { get; set; }
  public List<Child2> children { get; set; }
}

public class RootObject
{
public int id { get; set; }
public string name { get; set; }
public bool hasChildren { get; set; }
public int parentID { get; set; }
public List<Child> children { get; set; }
}

然后反序列化

  var data=JsonConvert.DeserializeObject<RootObject>(JSONstring);

然后你可以访问data.id

您需要添加引用Newtonsoft.json