2017-10-07 3 views
0

J'essaie d'obtenir les valeurs d'une réponse JSON. Je suis tout au travail, à l'exception extraire un tableau de la chaîne suivante:Impossible d'analyser certains fichiers JSON dans un fichier JSONArray à l'aide de GSON

{"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"} 

Je sais que GSON tente de l'analyser parce que je reçois cette erreur:

Exception in thread "main" java.lang.IllegalStateException: Not a JSON Array: {"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"} 

J'utilise le code suivant tenter de l'analyser:

final JsonElement midElement = obj.get("mid"); 
     final JsonArray midArray = midElement.getAsJsonArray(); 
     for(Object rate : midArray){ 
      final JsonObject rateObj = (JsonObject)rate; 
      final JsonElement openElement = rateObj.get("o"); 
      open = openElement.getAsFloat(); 

      final JsonElement highElement = rateObj.get("h"); 
      high = highElement.getAsFloat(); 

      final JsonElement lowElement = rateObj.get("l"); 
      low = lowElement.getAsFloat(); 

      final JsonElement closeElement = rateObj.get("c"); 
      close = closeElement.getAsFloat(); 
     } 
+0

Je pense que je l'ai répondu hier lui-même https://stackoverflow.com/questions/46587719/json-object-cannot-be-converted-to-json-array/46587951#46587951 – Optional

+0

Json tableau doit être entouré entre parenthèses? {["o": "1.18988", "h": "1.18993", "l": "1.18963", "c": "1.18993"]} – kotacc

Répondre

1

Tout d'abord, il ne ressemble pas à un tableau JSON valide. Cela devrait ressembler à ceci

[{"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"}] 

Essayez ce code suivant pour l'analyser au format JSON.

JSONObject jsonObject = new JSONObject(jsonString); 
    JSONArray jsonArray = jsonObject.getJSONArray("mid"); 
    for (int i = 0; i < jsonArray.length(); i++) {    
     jsonArray.getJSONObject(i).getString("o"); 
    } 

Ensuite, convertissez votre formulaire de données préféré.