JsonTextReader (Json.NET)
本文关键字:NET Json JsonTextReader | 更新日期: 2023-09-27 18:08:08
我正在尝试使用JsonTextReader从JSON字符串读取类(我需要在流pov中读取,而无需将整个结构加载到内存中)。但似乎JsonTextReader不能很好地与数组工作,或者我做错了什么,因为有值不是Read()。
我代码:while (jsonReader.Read())
{
if (jsonReader.Value != null)
Console.WriteLine("Token: {0}, Value: {1}", jsonReader.TokenType, jsonReader.Value);
else
Console.WriteLine("Token: {0}", jsonReader.TokenType);
}
My JSON file:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName": "Anna",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Jones"
}
]
}
输出:Token: StartObject
Token: StartArray
Token: StartObject
Token: PropertyName, Value: firstName
Token: PropertyName, Value: lastName
Token: EndObject
Token: StartObject
Token: PropertyName, Value: firstName
Token: PropertyName, Value: lastName
Token: EndObject
Token: StartObject
Token: PropertyName, Value: firstName
Token: PropertyName, Value: lastName
Token: EndObject
Token: EndArray
Token: EndObject
请注意,内容像约翰,安娜,Doe,…不显示。
知道我该怎么解决这个问题吗?我避免序列化/反序列化解决方案或LINQ,因为我不能将整个结构加载到内存中。
谢谢
看起来像属性,jsonReader.Value
返回属性名称,当ToString被调用。你可以尝试将value转换为JsonProperty类型,看看它是否包含属性的值。我不确定确切的类型名称是什么,但您可以在调试器中查找。