gpt4 book ai didi

c# - 将数组的 JSON 数组反序列化为 c# 类

转载 作者:行者123 更新时间:2023-12-04 15:24:09 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to deserialize a JSON array into an object using Json.Net?

(2 个回答)


去年关闭。




我有一个格式的类:

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 字符串的正确方法是什么?类(class)?

最佳答案

由于您的 JSON 中只有没有属性名称的值,因此您可以将其反序列化为集合对象序列,例如 IEnumerable<string[]> , IEnumerable<List<string>>List<List<string>> .然后将每一项解析为 Person手动(假设您对所有项目具有相同的结构,否则您将需要额外的逻辑来检查错误)

var result = JsonConvert.DeserializeObject<IEnumerable<string[]>>(jsonString);
var persons = result
.Select(item => new Person { Name = item[0], Age = int.Parse(item[1]), Car = item[2] })
.ToList();

关于c# - 将数组的 JSON 数组反序列化为 c# 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62663702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com