2014-07-09 191 views
3

我使用Newtonsoft Json.NET API来解析JSON响应。反序列化动态JSON响应

我有以下JSON:

{ 
    "country" : "DE", 
    "external_urls": 
    { 
     "spotify" : "https://open.spotify.com/user/123", 
     "another" : "https://open.spotify.com/user/1232" 
    } 
} 

两个键“Spotify的”和“其他”是动态的,这意味着它们的名称可能与下一个改变效应初探。也没有固定的lenght,总是有可能会或多或少条目“external_urls”

试图将其解析为以下对象:

public class FullProfileResponse 
{ 
    [JsonProperty("country")] 
    public String Country { get; set; } 
    [JsonProperty("external_urls")] 
    public ExternalUrls ExternalUrls { get; set; } 
} 
public class ExternalUrls 
{ 
    public String Key { get; set; } 
    public String Value { get; set; } 
} 

我怎么会得到Json.NET反序列化密钥 - 姓名为public String Key?因此,我将有Key = "spotify"Key = "another"

而且我会需要使用一个列表或IEnumerable的,但如何,如果它是一个动态的对象,它总是可以改变它的大小,而不是一个数组 ?

回答

2

声明ExternalUrls作为

[JsonProperty("external_urls")] 
public Dictionary<string,string> ExternalUrls { get; set; }