2016-08-26 9 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

1つの可能な方法は、 -

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

関連する問題