c# ASP.. NET json对象到数组



我被这个错误卡住了。这是我的JSON数据:

{
 "date": "2016-08-26",
 "time_of_day": "14:19",
 "request_time": "2016-08-26T14:19:59+01:00",
 "station_name": "Derby",
 "station_code": "DBY",
 "departures": {
   "all": [
     {
       "mode": "train",
       "service": "22152000",
       "train_uid": "C65080"
     },
     {
       "mode": "train",
       "service": "22150000",
       "train_uid": "C65145"
     },
     {
       "mode": "train",
       "service": "22180008",
       "train_uid": "C70700"
     }
   ]
 }
}

我要做的是将服务json对象添加到数组中,在此之后,我想通过服务列表进行增量,并将每个服务添加到单独的API调用。这是我的代码:

        dynamic content = JsonConvert.DeserializeObject(json);
        dynamic departures = content.departures;
        dynamic DepartTimes = departures.all;
        JArray items = ((JArray)DepartTimes["service"]);
        int serviceLength = items.Count;

        for (int i = 0; i < serviceLength; i++)
        {
            //next api call containing array increment
        }

错误似乎在这里:

JArray items = ((JArray)DepartTimes["service"]);

任何帮助都是非常感激的,谢谢!

一种可能的方法是-

var json = "json";
dynamic d = JsonConvert.DeserializeObject(json);
JArray arr = new JArray();
foreach(JObject o in d.departures.all){
    arr.Add(o["service"]);
}
Console.Write(arr.Count); //output : 3

提供的Json数据不正确。第二项和第三项必须有左花括号({)

另外,一个工作代码的例子可以是:

dynamic content = JsonConvert.DeserializeObject(json));
JArray items = (JArray)content.departures.all;     
var newArray = items.Select(x=>x["service"].ToString()).ToArray();

相关内容

  • 没有找到相关文章

最新更新