如何从json文件中获取json对象列表
本文关键字:json 获取 对象 列表 文件 | 更新日期: 2023-09-27 18:26:44
我可以序列化json文件的一个节点,如下
using (JsonTextReader jsonReader = new JsonTextReader(file))
{
deserializedJson = eerializer.Deserialize<Person>(jsonReader);
}
JsonNRadio是用json文件自动生成的类。现在我的json文件有多个json对象。因此,为此,我创建了一个名为Persons 的类
public class Persons
{
private Person[] person;
public Person[] person
{
get
{
return this.person;
}
set
{
this.person= value;
}
}
}
public partial class Person
{
public string id { get; set; }
public string name { get; set; }
}
现在我应该得到一堆json对象,但当我尝试使用下面的代码时,我只得到了第一个节点。
JsonSerializer serializer = new JsonSerializer();
using (StreamReader file = File.OpenText(@"D:''Sample.json"))
// deserializedXml = serialized.Deserialize(xmlStream);
using (JsonTextReader jsonReader = new JsonTextReader(file))
{
Persons deserializedXml = serializer.Deserialize<Persons> (jsonReader);
}
Person is object即将到来null。
有人能提供一个例子或如何获得json对象列表吗。
要使用上面的Persons类接收json数据,您的json文件必须如下所示:
{"Person":[{"id":"6397486515343190","name":"Henry"},{"id":"6397486515343192","name":"Paul"}]}
但是,由于您对json数据的设计没有影响,您可以简单地将其反序列化为Person:列表
using (JsonTextReader jsonReader = new JsonTextReader(file))
{
var deserializedXml = serializer.Deserialize<List<Person>> (jsonReader);
}
这应该对你有用。
用于在反序列化之前编辑json字符串,因为缺少"["answers"]"。如果你不想添加更多的新代码,你可以使用类似的东西:
using (JsonTextReader jsonReader = new JsonTextReader(file))
{
var json = "[" + jsonReader.Value.ToString() + "]";
var deserializedXml = JsonConvert.DeserializeObject<List<Person>>(json);
}
或者,您可以使用普通的FileReader将文件读取到字符串对象中,并在开头和结尾添加"[","]"。