JSON.Net错误读取

Jos*_*sef 38 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"
    }
]
Run Code Online (Sandbox Code Playgroud)

使用这段代码我想提取UIDClan数据:

 JObject o = JObject.Parse(s);

 Console.WriteLine(o["UIDClan"]);
Run Code Online (Sandbox Code Playgroud)

错误是

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

我已经检查过JSONLint,它是有效的.

我发现的例子不是以[.

难道我做错了什么?

sca*_*tag 83

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

JArray v = JArray.Parse(s);
Run Code Online (Sandbox Code Playgroud)

获得第一项.

var firstItem = v[0]["UIDClan"].ToString();
Run Code Online (Sandbox Code Playgroud)

你甚至可以使用linq

var items = v.Where(x =>  x["UIDClan"].ToString() == "1").ToList();
Run Code Online (Sandbox Code Playgroud)

  • 刚刚回答了我自己的问题.JRaw.Parse似乎使用字符串 (2认同)