我有一个问题是将json读取到对象:
{
"root":[
{
"arr1":[
{
"name":"n1",
"age": "a2"
},
{
"name":"n2",
"age":"a2"
}
]},
{
"arr2":[
{
"name":"n11",
"age" : "age22"
},
{
"name":"n12",
"age" :"a21"
}
]}
]
}
在我看来它可以这样工作:
public class Root
{
public List<Arr> myArr{ get; set; }
}
public class Arr
{
public Dictionary<string, List<Info>> info{ set; get; }
}
public class Info
{
public string name{get;set;}
public string age {get;set;}
}
Root root = JsonConvert.DeserializeObject<Root>(json);
这将返回具有3个对象的Root对象,但每个对象(Arr)将为null。显然我做错了什么,但我不知道是什么。理想情况下,最好只获得Dictionary&gt;作为最终结果
注意:上面的例子只是一个简单的例子,会有更多&#34; arrX&#34;对象,我需要它动态加载。
答案 0 :(得分:2)
只需使用:
public class RootObject
{
public List<Dictionary<string, List<Info>>> Root { get; set; }
}
public class Info
{
public string Name { get; set; }
public string Age { get; set; }
}
然后:
var root = JsonConvert.DeserializeObject<RootObject>(json);
答案 1 :(得分:0)
尝试以下一组课程
public class Rootobject
{
public Root[] root { get; set; }
}
public class Root
{
public Arr1[] arr1 { get; set; }
public Arr2[] arr2 { get; set; }
}
public class Arr1
{
public string name { get; set; }
public string age { get; set; }
}
public class Arr2
{
public string name { get; set; }
public string age { get; set; }
}
Root root = JsonConvert.DeserializeObject<Rootobject>(json);
如果要稍微清理类,可以使用[JsonProperty(Name = "ayx)]
指定Json属性名称。