[英]How to convert List<object> to Json format and populate <tbody> in C#?
[英]Populate JSON List To C# Object
我正在尝试将JSON / XML字符串填充到C#对象中。 我将XML转换为JSON,然后使用JSON.NET。 例:
JSON字符串
{
"persons":[
{
"age":30,
"name":"david",
"hobbies":[
{
"name":"tennis",
"hours":5
},
{
"name":"football",
"hours":10
}
]
},
{
"name":"adam",
"age":23,
"hobbies":[]
}
]
}
C#类
public class Hobbies
{
public string name;
public int hours;
}
class Person
{
public string name;
public int age;
public List<Hobbies> hoobies = new List<Hobbies>();
}
我正在尝试将数据填充到人员列表中:
List<Person> persons = new List<Person>();
JsonConvert.PopulateObject(myJsonText, persons);
我得到这个例外:
无法将JSON对象填充到类型上
我怎样才能做到这一点?
这是对象的JSON
表示形式:
{
"key":"value"
}
这是对象的集合/数组/列表的表示
[
{
"key":"value"
},
{
"key2":"value2"
}
]
因此,您的JSON
字符串不代表Person
类的数组或集合。 它用Persons
属性表示对象,该属性是Person
对象的集合。
要将其解析为List<Person>
,请删除最外面的{
}
,然后尝试。
您的JSON应该看起来像这样
[
{
"age": 30,
"name": "david",
"hobbies": [
{
"name": "tennis",
"hours": 5
},
{
"name": "football",
"hours": 10
}
]
},
{
"name": "adam",
"age": 23,
"hobbies": []
}
]
然后像这样反序列化
var result = JsonConvert.DeserializeObject<List<Person>>(json);
您需要一个根对象
public class Root
{
public List<Person> Persons {set;get;}
}
现在您可以反序列化
var yourObj = JsonConvert.DeserializeObject<Root>(json);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.