2010-07-14 6 views
2

J'essaie d'obtenir analyser la réponse JSON pour le lien suivant: https://graph.facebook.com/feed/?ids=135395949809348,149531474996&access_token=Parsing Facebook Open API Graph Réponse JSON en C#

La réponse est comme ça:

{ 
    "135395949809348": { 
     "data": [ 
     { 
      ....Some data 
     }] 
    } 
, 
    "325475509465": { 
     "data": [ 
     { 
     ....Some data...... 
     }] 
    } 
} 

J'utilise System.Web.Script Méthode .Serialization.JavaScriptSerializer.Deserialize (string json). Mais les noms des clés des objets sont toujours différents, donc je ne peux pas définir la classe qui peut être utilisée pour analyser cette réponse. Quelqu'un a-t-il une expérience dans l'analyse de la réponse de plusieurs ID de Facebook?

Répondre

1

Avec JSON.NET, vous pouvez lire le respose comme JObject, puis y accéder via l'indexeur.

var json = JObject.Parse(result); 
var array = json["325475509465"]["data"]; 

Ensuite, vous pouvez désérialiser objets de tableau ...

1

Quel est le problème avec la désérialisation? Deserialize va produire un dictionnaire, avec des tableaux internes potentiels et des instances de dictionnaire aussi ....

Il ne serait pas analysé en tant qu'objet personnalisé à moins que vous ne construisiez un sérialiseur pour le faire ... ou que vous regardiez JSON.NET : http://james.newtonking.com/pages/json-net.aspx

+0

Merci pour votre réponse. J'utilise la méthode similaire à celle décrite ici http://stackoverflow.com/questions/401756/parsing-json-using-json-net Mais, dans mon cas, je ne peux pas définir l'objet "135395949809348". – Boris

+1

Oui, mais vous pouvez essayer l'approche Dictionary , la désérialiser dans un dictionnaire et extraire les informations de cette façon. Un peu de douleur, mais ce scénario serait géré. –