2016-03-27 9 views
0

このJSON https://app.anytimecar.ru/data/v3.4/info/のcar_itemsからすべてのアイテムを取得するにはどうすればよいですか? 私がしようとした:car_itemsがリストではありませんので、c#JSON逆シリアル化(リストではないリスト)

public class anytimeCars 
{ 
    public string status { get; set; } 
    public anytimeData data { get; set; } 
} 
public class anytimeCar 
{ 
    public string id { get; set; } 
    public string brand { get; set; } 
    public string color { get; set; } 
    public string power { get; set; } 
    public string exterior { get; set; } 
    public string interior { get; set; } 
    public string date_of_construction { get; set; } 
    public string car_type { get; set; } 
    public string lng { get; set; } 
    public string lat { get; set; } 
    public string address { get; set; } 
} 
public class anytimeData 
{ 
    public List<anytimeCar> car_items { get; set; } 
} 


anytimeCars anytimeCars = new anytimeCars(); 
      anytimeCars = JsonConvert.DeserializeObject<anytimeCars>(response.Content.ToString()); 

しかし、それは動作しません。

答えて

0

このようなマッピングをDictionary<int, anytimeCar>に逆シリアル化できます。 car_itemsはルートのプロパティではないため、契約を少し調整する必要があることに注意してください。それは次のように機能します。

public class AnytimeData 
{ 
    [JsonProperty("car_items")] 
    public Dictionary<int, anytimeCar> Cars { get; set; } 
} 
public class Response 
{ 
    public AnytimeData Data {get;set;} 
} 

そして、あなたは要求を作成し、このようにそれをデシリアライズすることができます

var url = "https://app.anytimecar.ru/data/v3.4/info/"; 

using (var client = new WebClient()) 
{ 
    string json = client.DownloadString(url); 
    var data = JsonConvert.DeserializeObject<Response>(json); 

    foreach (anytimeCar car in data.Data.Cars.Values) 
    { 
     Console.WriteLine(car.brand); 
    } 
} 
+0

おかげで、正常に動作します! – Yan

関連する問題