40

我正在尝试使用 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"]);

错误是

从 JsonReader 读取 JObject 时出错。当前 JsonReader 项不是对象:StartArray。路径'',第 1 行,位置 1。

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

我发现的例子不是以 [.

难道我做错了什么?

4

2 回答 2

85

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

JArray v = JArray.Parse(s);

获得第一个项目。

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

你甚至可以使用 linq

var items = v.Where(x =>  x["UIDClan"].ToString() == "1").ToList();
于 2013-09-08T20:25:08.133 回答
-1

为了克服错误,请以以下格式序列化 jsonstring。我们可以将这个序列化字符串解析为 Jobject

Newtonsoft.Json.JsonConvert.SerializeObject(new {JsonString})
于 2016-11-09T13:31:21.440 回答