我正在尝试将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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句