Comment puis-je analyser chaîne json à partir de Httpclient
Salut, je suis à l'obtention de résultat json par l'appel d'une api externe.
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
var s = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
return "Success";
}
else
{
return "Fail";
}
le résultat en ligne var s = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
je suis, c'est comme :
{{
"query": "1",
"topScoringIntent": {
"intent": "1",
"score": 0.9978111,
"actions": [
{
"triggered": false,
"name": "1",
"parameters": [
{
"name": "1",
"required": true,
"value": null
},
{
"name": "1",
"required": true,
"value": null
},
{
"name": "1",
"required": true,
"value": null
}
]
}
]
},
"entities": [],
"dialog": {
"prompt": "1",
"parameterName": "1",
"parameterType": "1::1",
"contextId": "11",
"status": "1"
}
}}
comment puis-je obtenir prompt
de "dialogue"?
Je suis à l'aide de client http. Je suis confronté à la difficulté d'accès à l'invite de clé-valeur.
Je veux obtenir l'invite de dialogue. comment puis-je l'obtenir?
- Notez que vous ne devriez pas faire .Résultat sur le client.GetAsync, comme cela va bloquer le fil.
Vous devez vous connecter pour publier un commentaire.
Vous voulez avoir un oeil ici:
http://www.newtonsoft.com/json/help/html/deserializeobject.htm
Créer une classe avec la même structure comme la votre XML. Ensuite, votre variable
s
est une instance de cette classe et vous pouvez désérialiser le json à la structure de la classe.Dans votre cas, votre propriété doit être
s.dialog.prompt
.Il y a trois façons qui viennent à l'esprit.
En supposant que le json est conforme et la structure de la réponse ne changera pas souvent, je voudrais utiliser un outil comme json2csharp ou jsonutils de créer des classes c#.
puis composez le:
Cela vous donnera un objet fortement typé que vous pouvez utiliser.
Vous pouvez sauter la classe de la génération et de l'utilisation d'un objet dynamique:
et d'accéder à des propriétés telles que:
Vous pouvez utiliser un JObject et d'accéder à ses propriétés à l'aide de cordes
Édité :
Importation Newtonsoft.Json