我正在尝试一个使用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,因为我不能将整个结构加载到内存中。
谢谢
发布于 2013-04-08 22:55:23
对于属性,当调用ToString时,jsonReader.Value返回属性名。您可以尝试将值转换为类似于JsonProperty类型的值,并查看它是否包含该属性的值。我不确定确切的类型名称是什么,但您可以在调试器中查找它。
https://stackoverflow.com/questions/15881875
复制相似问题