我使用Newtonsoft Json.NET API来解析JSON响应。
我有以下JSON:
{
"country" : "DE",
"external_urls":
{
"spotify" : "https://open.spotify.com/user/123",
"another" : "https://open.spotify.com/user/1232"
}
}
两个键" spotify"和另一个"是动态的,这意味着他们的名字可能会随着下一次响应而改变。也没有固定的长度,在" 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"
我需要使用List或IEnumerable,但如果它是一个动态对象,它总是可以改变它的大小而不是一个数组 ?
答案 0 :(得分:2)
将 ExternalUrls 声明为
[JsonProperty("external_urls")]
public Dictionary<string,string> ExternalUrls { get; set; }