我正在尝试使用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进行了检查,它是有效的。
我找到的例子并不是以[。
开头我做错了吗?
答案 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})