JSON.Net读取错误

标签 json.net

我正在尝试使用 Json.Net 解析一些 JSON 数据。这是我的数据:

[
    {
        "UIDClan": "1",
        "UIDKnjiga": "1",
        "Naslov": "Title1",
        "DatumZaKada": "2013-08-09 00:00:00",
        "DatumIstekRez": null,
        "Spremno": "0"
    },
    {
        "UIDClan": "1",
        "UIDKnjiga": "2",
        "Naslov": "Title2",
        "DatumZaKada": "2013-08-08 00:00:00",
        "DatumIstekRez": null,
        "Spremno": "0"
    },
    {
        "UIDClan": "1",
        "UIDKnjiga": "3",
        "Naslov": "Title3",
        "DatumZaKada": "2013-08-09 00:00:00",
        "DatumIstekRez": "2013-10-09 00:00:00",
        "Spremno": "1"
    }
]

通过这段代码,我想提取 UIDClan 数据:

 JObject o = JObject.Parse(s);

 Console.WriteLine(o["UIDClan"]);

错误是

Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1.

我已经检查过 JSONLint 并且它是有效的。

我发现的示例不以 [ 开头。

我做错了什么吗?

最佳答案

您可以尝试使用JArray。 这个JSON数据实际上是一个数组。

JArray v = JArray.Parse(s);

获取第一个项目。

var firstItem = v[0]["UIDClan"].ToString();

你甚至可以使用 linq

var items = v.Where(x =>  x["UIDClan"].ToString() == "1").ToList();

关于JSON.Net读取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688261/

相关文章:

c# - 如何使用特定的派生类反序列化对象的属性

c# - ContractResolver,带下划线的小写字母(蛇形属性名称)?

java - 如何在 Gson 中读取 Json.NET ISO 8601 格式?

json - 使用 JSON.net 将 JSON 反序列化为 .net 基类

c# - 通过字符串名称从 JSON 中获取属性(已经反序列化为类)

json - 实现自定义Newtonsoft JsonConverter(阅读器)

c# - 如何将 Newtonsoft Json.NET 引用反序列化为单独的单个实例

c# - 使用 JSON.NET 将 C# 对象转换为 JSON 时出现额外的 '\'

c# - 将 JavaScriptConverter 转换为 json.net JsonConverter

json - 在 Windows Phone 7 上解析 JSON