【发布时间】:2020-07-01 17:08:22
【问题描述】:
我有一个格式如下的课程:
public class Person
{
public string Name {get;set;}
public int Age {get;set;}
public string Car {get;set;}
}
我试图从文件中读取 JSON:
using (StreamReader r = new StreamReader(path))
{
string json = r.ReadToEnd();
//var items = JsonConvert.DeserializeObject<IEnumerable<Person>>(json);
}
当我得到一个字符串中的 JSON 时,我得到的格式如下:
[
["John", 30, "BMW"],
["Tim", 45, "Ford"],
["Kim", 34, "Toyota"]
]
我以为 JSON 会在 IEnumerable<Person> 中反序列化,但它不能。
使用 Person 类反序列化 JSON 字符串的正确方法是什么?
【问题讨论】:
-
您可以使用来自 How to deserialize a JSON array into an object using Json.Net? 的
ArrayToObjectConverter<T>与您的 Person 类来反序列化此 JSON。 -
这里是一个例子:dotnetfiddle.net/iephm4
-
@BrianRogers 是的,您的回答很有帮助。