2017-05-27 40 views
0

Ich habe einen JSON wieJSON Parsen von JSON-Objekte in android

{ 

"Area1": "areacode1", 
"Area2": "areacode2", 
"Area3" : "areacode3" 

} 

Ich möchte die json und iterate "Bereich", um es analysieren Mein Code autocompletetextview, ist,

// Lesen JSON aus lokalen Datei

public String loadJSONFromAsset() { 
    String json = null; 
    try { 

     InputStream is = getAssets().open("arealist.json"); 

     int size = is.available(); 

     byte[] buffer = new byte[size]; 

     is.read(buffer); 

     is.close(); 

     json = new String(buffer, "UTF-8"); 



    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
    return json; 

} 

// Parsing und Iterieren der json ...

try { 
     JSONObject obj = new JSONObject(loadJSONFromAsset()); 
      Iterator<String> keys= obj.keys(); 
     while (keys.hasNext()) 
     { 
      String keyValue = (String)keys.next(); 
      String valueString = obj.getString(keyValue); 
      Log.d("Details-->",valueString); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

Ich bekomme den Fehler als "Typenkonflikt: kann JSONObject nicht in JSONArray konvertieren", möchte ich wissen, wie JSONObject in Zeichenfolge konvertieren und zu List.Ich bin neu in Android so verwirrt, wie weiter verfahren Mit freundlichen Grüßen Hilfe, Danke im Voraus.

+0

Sind Sie sicher, dass Ihr JSON diese Antwort zurückgibt? –

Antwort

1

versuchen, wie diese diese jsonString in JSONObject

zu lesen arealist.json
InputStream inputStream = getContext().getAssets().open("arealist.json"); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 


String line; 
      StringBuilder sb = new StringBuilder(); 
      while ((line = reader.readLine()) != null){ 
       sb.append(line).append("\n"); 
      } 

      //parse JSON and store it in the list 
      String jsonString = sb.toString(); 

und

+0

Es hat funktioniert, Danke – samz22

0

verwenden, um die gegebenen json durch den folgenden Code Nach debuggen:

String json = "{\n" + 
      "\n" + 
      " \"Area1\": \"areacode1\",\n" + 
      " \"Area2\": \"areacode2\",\n" + 
      " \"Area3\" : \"areacode3\"\n" + 
      "\n" + 
      " }"; 
    try { 
     JSONObject obj = new JSONObject(json); 
     Iterator<String> keys= obj.keys(); 
     while (keys.hasNext()) 
     { 
      String keyValue = (String)keys.next(); 
      String valueString = obj.getString(keyValue); 
      Log.d("Details-->",valueString); 
     } 



    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

Ich stelle fest, dass die So lesen Sie, welche JSON kein Problem hat. Das Problem ist die String-Rückgabe von loadJSONFromAsset. Sie müssen das aus dieser Methode korrigieren.