Je travaille sur une application Android. Dans mon application, je dois convertir une chaîne en objet Json, puis analyser les valeurs. J'ai vérifié une solution dans stackoverflow et trouvé un problème similaire ici lien
La solution est comme ça
`{"phonetype":"N95","cat":"WP"}`
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
J'utilise la même manière dans mon code. Ma chaîne est
{"ApiInfo":{"description":"userDetails","status":"success"},"userDetails":{"Name":"somename","userName":"value"},"pendingPushDetails":[]}
string mystring= mystring.replace("\"", "\\\"");
Et après le remplacement, j'ai eu le résultat comme ceci
{\"ApiInfo\":{\"description\":\"userDetails\",\"status\":\"success\"},\"userDetails\":{\"Name\":\"Sarath Babu\",\"userName\":\"sarath.babu.sarath babu\",\"Token\":\"ZIhvXsZlKCNL6Xj9OPIOOz3FlGta9g\",\"userId\":\"118\"},\"pendingPushDetails\":[]}
quand j'exécute JSONObject jsonObj = new JSONObject(mybizData);
Je reçois l'exception json ci-dessous
org.json.JSONException: Expected literal value at character 1 of
Veuillez m'aider à résoudre mon problème.
Réponses:
Supprimez les barres obliques:
la source
JSONArray obj = new JSONArray(json);
. Ensuite, vous pouvez utiliser une boucle for pour parcourir le tableau.{"Fat cat":"meow"}
.c'est du travail
la source
essaye ça:
la source
Pour obtenir un JSONObject ou JSONArray à partir d'une chaîne, j'ai créé cette classe:
Ici pour obtenir le JSON:
Exemple:
la source
[
ou{
pour savoir s'il s'agit d'un tableau ou d'un objet. Alors vous ne risqueriez pas les deux exceptions, juste la plus pertinente.essayez simplement ceci, enfin cela fonctionne pour moi:
la source
Vous avez juste besoin des lignes de code comme ci-dessous:
la source
Voici le code, et vous pouvez décider lequel
StringBuffer (synchronisé) ou le StringBuilder le plus rapide à utiliser.
Benchmark montre que StringBuilder est plus rapide.
la source
Peut-être en dessous, c'est mieux.
la source