JSON.Net错误阅读

我试图用Json.Netparsing一些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。 path“,第1行,位置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(); 

为了克服这个错误plz序列化jsonstring在下面的格式。这个序列化string我们可以parsing为Jobject

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