我是Json.NET的新用户。我创建了一个类型:Person
,它具有不同的属性:firstName,lastName,age等。
我有一个Json字符串,但我无法将其反序列化并获得所有" Person"在存储列表中。
这是我正在运行的代码:
List <Person> persons = JsonConvert.DeserializeObject<List<Person>>(strPersons);`
strPersons是我的json字符串。就像那样:
string strPersons = @"{
'Columns':['FirstName','LastName','Hobbies','Age','Country','Address','Phone','Gender'],
'Rows':[
['X', 'Y', 'Cuisine', '35', 'France', 'unknown', 'unknown', 'male'],
['W', 'Z', 'Danser', '43', 'France', 'unknown', 'unknown', 'male'],
...]
编译时出错:
附加信息:无法将当前JSON对象(例如{&#34; name&#34;:&#34; value&#34;})反序列化为类型System.Collections.Generic.List1 [Info3JsonConvertor.Person]&# 39;因为类型需要JSON数组
有人可以解释我如何反序列化我的json字符串以获取列表
如果我将List<Person>
序列化为json字符串,我会遇到同样的问题吗?
我知道这些问题已经得到解答,但是如果有人可以用我的例子解释我的话?
答案 0 :(得分:1)
反序列化程序从您的JSON识别的对象看起来像这样:
public class RootObject
{
public List<string> Columns { get; set; }
public List<List<string>> Rows { get; set; }
}
你可以看到它不是List,而只是Person
答案 1 :(得分:0)
您的根元素是一个对象而不是列表或数组({....}
)。 Json数组以[
public class MyData
{
public List<string> Columns { set; get; }
public List<List<string>> Rows { set; get; }
}
var data = JsonConvert.DeserializeObject<MyData>(json);