JSON.Net错误读取

时间:2013-09-08 20:18:43

标签: 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"]);

错误是

  

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

我已经使用JSONLint进行了检查,它是有效的。

我找到的例子并不是以[。

开头

我做错了吗?

2 个答案:

答案 0 :(得分:83)

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

JArray v = JArray.Parse(s);

获取第一项。

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

你甚至可以使用linq

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

答案 1 :(得分:-1)

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

Newtonsoft.Json.JsonConvert.SerializeObject(new {JsonString})