2016-08-26 7 views
-1

이 오류가 발생했습니다. 내가 뭘하려고 오전배열에 C# ASP.NET 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" 
    } 
    ] 
} 
} 

이 후 나는 서비스 목록을 증가시키고 별도의 API 호출에 각 서비스를 추가 할 배열에 서비스 JSON 객체를 추가 할 수 있습니다 : 이것은 내 JSON 데이터입니다. 오류가 여기에있을 것 같다

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

어떤 도움이 많이 감사합니다, 감사합니다!

+0

당신은 JSON 데이터를 가지고 배열에 있거나 배열에 추가하려고합니다. – Aravind

+0

서비스 개체를 배열에 추가하려고합니다. – kieron

+0

'DepartTimes'는'service' 속성을 가지고 있지 않습니다. –

답변

0

한 가지 가능한 방법입니다 -

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 
+0

정말 고마워요! – kieron

0

제공 Json 데이터가 올바르지 않습니다. 두 번째와 세 번째 항목이 열려 중괄호 ({) 또한

이 있어야합니다, 예를 들어 작업 코드가있을 수 있습니다 :

dynamic content = JsonConvert.DeserializeObject(json)); 
JArray items = (JArray)content.departures.all;  

var newArray = items.Select(x=>x["service"].ToString()).ToArray(); 
+0

죄송합니다. json 예제를 변경했습니다. – kieron