2014-07-09 3 views
3

J'utilise l'API Newtonsoft Json.NET pour analyser les réponses JSON.déseralisation de la réponse JSON dynamique

Je vais avoir JSON suivant:

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

les deux touches « spotify » et « une autre » sont dynamiques, ce qui signifie que leur nom pourrait changer avec la prochaine Reponse. En outre il n'y a pas de longueur fixe, il pourrait toujours être plus ou moins entrées dans « external_urls »

essayer de l'analyser en objet suivant:

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; } 
} 

Comment pourrais-je obtenir Json.NET désérialiser le Key- Nom à public String Key? Je devrais donc Key = "spotify" et Key = "another"

Et je besoin d'utiliser une liste ou IEnumerable, mais comment s'il est un objet dynamique qui peut toujours change de taille et n'est pas un tableau ?

Répondre

2

déclare ExternalUrls comme

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