要反序列化以下Json,我使用了以下类的组合,这样我就可以循环使用四层 但它不起作用
我没有找到任何反序列化这样的json的教程 任何帮助都非常感谢
var myFoo = new JavaScriptSerializer().Deserialize<Commn.foo2>(@"
{""root"":
{""qss"":[
{""id"":""d1"",""qss"":[
{""id"":""qs1-1"",""tp"":""50px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs1-2"",""tp"":""100px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs1-3"",""tp"":""150px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs1-4"",""tp"":""200px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs1-5"",""tp"":""250px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs1-6"",""tp"":""300px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs1-7"",""tp"":""350px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs1-8"",""tp"":""400px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs1-9"",""tp"":""450px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs1-10"",""tp"":""500px"",""ck"":""c"",""dp"":""at""}]
}
{""id"":""d2"",""qss"":[
{""id"":""qs2-1"",""tp"":""50px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs2-2"",""tp"":""100px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-3"",""tp"":""150px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-4"",""tp"":""200px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs2-5"",""tp"":""250px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-6"",""tp"":""300px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-7"",""tp"":""350px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-8"",""tp"":""400px"",""ck"":""i"",""dp"":""at""},
{""id"":""qs2-9"",""tp"":""450px"",""ck"":""c"",""dp"":""at""},
{""id"":""qs2-10"",""tp"":""500px"",""ck"":""c"",""dp"":""at""}]
}
}
}
");
public class Pages
{
public string id { get; set; }
public qss[] children { get; set; }
}
public class qss
{
public string id { get; set; }
public string tp { get; set; }
public string ck { get; set; }
public string dp { get; set; }
}
/// <summary>
/// Holding the root elemnt
/// </summary>
public class foo2
{
public qss[] root { get; set; }
}
答案 0 :(得分:0)
您正在使用的类并不完全映射到JSON文件的属性。 JSON的每个对象(出现在{}之间的对象)和每个数组(出现在[]之间的对象)需要不同的类。每一对,该类的成员。
public class MainObject
{
public Root root { get; set; }
}
此类包含整个“root”值。 Root的定义是这样的,因为“root”出现在{}之间,整个字符串出现在“root”之后:是它的值。
public class Root
{
public List<OuterQSS> qss { get; set; }
}
此类保存整个外部“qss”值,该值出现在第二个“qss”(即数组)之前。
public class OuterQSS
{
public string id { get; set; }
public List<InnerQSS> qss { get; set; }
}
此类包含“id”值和内部QSS成员的整个数组。
public class InnerQSS
{
public string id { get; set; }
public string tp { get; set; }
public string ck { get; set; }
public string dp { get; set; }
}
此类包含内部QSS数组中所有甜蜜,甜蜜的数据。
只需替换它的类型
Deserialize<Commn.foo2>
新主要类的方法
Deserialize<MainObject>