我正在尝试使用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,因为我无法将整个结构加载到内存中。
由于
答案 0 :(得分:-1)
在调用ToString时,对于属性,jsonReader.Value
返回属性名称。您可以尝试将值转换为类似JsonProperty类型的值,并查看它是否包含属性的值。我不确定具体的类型名称是什么,但您可以在调试器中查找。