Je suis en train d'accéder à toutes les catégories dans le premier niveau dans une réponse Foursquare: -Lire Foursquare Réponse JSON avec JSON.NET
{
"meta": {
"code": 200
},
"response": {
"categories": [{
"id": "4d4b7104d754a06370d81259",
"name": "Arts & Entertainment",
"pluralName": "Arts & Entertainment",
"shortName": "Arts & Entertainment",
"icon": {
"prefix": "https:\/\/foursquare.com\/img\/categories\/arts_entertainment\/default_",
"sizes": [32, 44, 64, 88, 256],
"name": ".png"
},
"categories": [{
"id": "4bf58dd8d48988d1e1931735"
utilisant JSON.NET:-
JObject o = JObject.Parse(FoursquareObject.GetCategories());
IList<string> categories = o.SelectToken("categories[0]").Select(s => (string)s).ToList();
Où FoursquareObject.GetCategories()
renvoie la réponse sous forme de chaîne. J'ai aussi essayé: -
JArray categories = (JArray)o["categories"];
var categories = (string) o["response[0].categories"];
... et de nombreuses variations de, juste pour voir la réponse dans la variable et toujours obtenir des erreurs « référence d'objet » ou « ne peut pas être {null} ». Je sais que je suis proche, mais pour la vie de moi ne peut pas savoir comment obtenir à la partie «catégories» de la réponse ...
Quelqu'un peut-il me diriger dans la bonne direction?
L'aide est appréciée. ;)
MISE À JOUR:
Merci aux réponses de LB et Meklarian, j'ai ajouté ce code (et variantes): -
dynamic four = JsonConvert.DeserializeObject(FoursquareObject.GetCategories());
foreach (var cat in four)
{
context.Response.Write(cat.response.categories.id);
}
Mais peu importe ce que j'essaie dans la Write()
, je reçois toujours: -
'Newtonsoft.Json.Linq.JProperty' ne contient pas de définition pour 'réponse'
J'ai essayé beaucoup de combinaisons, pas de chance. J'ai vérifié la sortie du fichier JSON, j'obtiens la réponse JSON pure comme une chaîne. Juste une note, que les catégories peuvent exister dans les catégories, d'où la raison pour laquelle le JSON semble être brisé. Je vous assure que ce n'est pas le cas. Je suis complètement coincé!
Ce lien peut être utile http://stackoverflow.com/ questions/9522044/essayer-de-consommer-smartystreets-json-avec-json-net-ne peut-deserialize-json-a/9522266 # 9522266 –
@LB cela semble certainement être juste le billet! +1 – dooburt