【发布时间】:2013-04-08 14:33:16
【问题描述】:
我正在尝试使用 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);
}
我的 JSON 文件:
{
"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
请注意,Jonh、Anna、Doe 等内容不会显示。
知道我该如何解决这个问题吗?我正在避免序列化\反序列化解决方案或 LINQ,因为我无法将整个结构加载到内存中。
谢谢
【问题讨论】:
-
你需要
Deserialize the JSON string..?你看过下面的JSON .NET Library |看看这个`所以以前的帖子听起来/看起来像你需要的东西stackoverflow.com/questions/2859753/… -
布赖恩,你的样本有效,它似乎是“”。我会做更多的测试,但这是一个很好的起点,谢谢。
-
投票结束这个老问题,因为原始问题无法重现(工作小提琴here)并且帖子从未更新过更多细节。