Je travaille avec l'API Microsoft Translator et j'essaie de convertir la réponse en un objet JSON pour obtenir la langue détectée.
Ceci est la chaîne de réponse p> i Besoin de la première "langue": "de" p> J'ai déjà essayé de convertir avec newtonsoft jobject.pajarse () mais il fonctionne p> Voici comment la chaîne ressemble à Console: p> et cette erreur est l'erreur imprimée par jobject.parse (string); p> EDIT: p> Ceci est le HTTPRequest La chaîne JSON provient de: p> et j'essaie ensuite de travailler avec la réponse: p> string json = TranslateText(text);
JArray jArray = JArray.Parse(json);
string firstLanguage = jArray[0]["language"].ToString();
3 Réponses :
Essayez de cette façon: valeur linguistique: p> "de" p>
blockQuote> p>
Utiliser le JSONCONVERT.DESERialize Méthode pour désérialiser.
Depuis que vous essayez de désérialiser dans un Jobject, cela ne désérialisera pas directement, car votre chaîne JSON contient un tableau, le convertissez donc d'abord une liste à une liste .firstambordfault () code> pour savoir la valeur de la langue code> de la langue code>. p>
Vous êtes presque proche de mais votre JSON n'est pas un objet, c'est un tableau d'objet afin que vous ayez besoin de 1) Analysez-le à 2) En interrogeant sur Jobject code>, jarray code> pour l'analyser avec succès. < / p> JARRAY CODE> P> JARRAY code> Vous pouvez obtenir la première langue à l'aide de l'index 0. < / p>
Cela devrait fonctionner bien merci. Il suffit de résoudre ce problème que ma chaîne JSON est un retour d'une méthode envoiant un poste http, donc j'ai besoin d'attendre le résultat car la chaîne est null autrement.
Ok, mais qu'est-ce que attendre b> signifie ici => J'ai donc besoin d'attendre le résultat car la chaîne est null sinon i>. Est-ce que tu veux dire async attendre?
Si je "jarray = jarray.parse (jsonstring);" Je reçois toujours une "référence d'objet non définie sur une instance d'objet." - Erreur. Mais la chaîne JSON est là parce que je peux l'imprimer avant ..
Vous s'il vous plaît copier mon code car il se trouve sur le nouveau fichier de classe. Et laissez-moi savoir si cela fonctionne ou non ou b> laissez-moi savoir comment vous intégrez mon code à votre fin.
J'ai intégré votre code, mais je n'attribuai pas la chaîne JSON via le code dur, car je reçois le JSON comme réponse d'un HTTPRequestMessage. Si j'ignore la chaîne JSON comme vous, cela fonctionne.
Oh, alors s'il vous plaît ajouter votre réponse httpRequestMessage code> à votre message, donc je vais jeter un oeil dessus
Pourriez-vous me montrer comment votre JSONResponse code> en ajoutant un point d'arrêt et un débogage.
Je l'ai imprimé et c'est la chaîne exacte que vous avez utilisée dans votre réponse
Oh, je pense que je l'ai eu quel est le problème. Permettez-moi savoir quel Json avez-vous reçu dans JSONResponse CODE> car dans votre message, il y a 2 Jsons différents et j'ai utilisé 1ère une et pourrait être votre HTTPequestMessage Code> Rends vous 2ND JSON
Oh .. Ouais .. c'est le 2nd un .. Désolé: D
Merci beaucoup pour votre temps. Je vais essayer d'améliorer mes questions la prochaine fois.
Si la réponse vous aidez ensuite à marquer la tique sur le côté gauche de la réponse pour le rendre vert et uppote en cliquant sur la flèche :)
"J'ai déjà essayé de convertir avec Newtonsoft Jobject.Parse () mais la citation est fausse." Qu'est-ce que ça veut dire?
Quel est le message d'erreur à la suite de
jobject.parse () code>Il semble que vous puissiez remplacer
" code> et" code> avec un devis régulier char" code> puis utilisez jsonconvertCeux-ci ressemblent à des citations de fantaisie / inclinées qui ne seront pas valables JSON
Les devis fantaisistes étaient de ma faute, édité la chaîne d'origine
Et ces backslashes en fait i> dans le JSON, ou est-ce que ce n'est que ce que vous voyez dans le débogueur? (Que voyez-vous si vous l'imprimez à la console?)
Vous ne pouvez pas utiliser
jobject.parse code> pour cela car la racine ici est une matrice, pas un objet, comme étant évident par la racine[...] code>. Vous pouvez utiliserjtoken.parse code>, mais vous pouvez aussi bien utiliserjsonconvert.deserializeObject code> car Marco a montré dans sa réponse.