JsonTextReader(Json.NET)

时间:2013-04-08 14:33:16

标签: c# json.net

我正在尝试使用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,因为我无法将整个结构加载到内存中。

由于

1 个答案:

答案 0 :(得分:-1)

在调用ToString时,对于属性,jsonReader.Value返回属性名称。您可以尝试将值转换为类似JsonProperty类型的值,并查看它是否包含属性的值。我不确定具体的类型名称是什么,但您可以在调试器中查找。