2017-05-15 2 views
0

Also habe ich eine JSON-Datei, die ich analysiert habe, und ich möchte wissen, wie ich die Informationen in der JSON-Datei auf den Bildschirm bekommen kann? Heres das Parsing der Json.Ausgabe geparsten JSON-Daten

public String loadJSONFromAsset() 
{ 
    String json = null; 
    try 
    { 
     InputStream is = getAssets().open("JSON.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; 
} 

JSON:

{"answers":[ 
{ 
"answer": "1" 
}, 
{ 
"answer": "2" 
}, 
{ 
"answer": "3" 
}, 
{ 
"answer": "4" 
}, 
{ 
"answer": "5" 
} 
]} 

Wie ich zum Beispiel bekommt "4" in eine Variable? Ich hoffe meine Frage ist klar genug, wenn nicht, Kommentar. Ich möchte einfach eine der Zahlen ausgeben.

+0

Check diese http lösen: // stackoverflow.com/questions/2591098/how-to-parse-json-in-java?rq=1 –

Antwort

2

Mit diesem Beispielcode hoffen, dass es Ihr Problem

private void parseJson(String json) { 
    try { 
     JSONObject jsonObject = new JSONObject(json); 
     JSONArray jsonArray = jsonObject.getJSONArray("answers"); 
     for (int i = 0; i < jsonArray.length(); i++){ 
      String answer = jsonArray.getJSONObject(i).getString("answer"); 
      Log.i(TAG,"answer: "+answer); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
+0

danke sein funktioniert für mich –

+0

Sorry für th Die vielleicht dumme Frage, aber muss ich diese Methode nicht nennen? Wenn ja, rufe ich es von oncreate oder von der "loadJSONFromAsset" -Methode? Momentan rufe ich die "loadJSONFromAsset" -Methode von der oncreate-Methode auf, sollte ich das gleiche mit dieser Methode machen oder sie von der ersten Methode aus aufrufen? – random1234

+1

Aufruf loadJSONFromAsset-Methode zuweisen Ausgabe in ParseJson und fertig. seine nicht lange laufende Aufgabe keine Notwendigkeit, einen separaten Thread für diesen make-Verbindungslink zu erstellen parseJson (loadJSONFromAsset()); – Hasnain

1

Analysieren Sie die JSON-Zeichenfolge.

JSONObject obj = new JSONObject(jsonString); 
JSONArray answers = obj.getJSONArray("answers"); 
for (int i = 0; i < answers.length(); i++) { 
    // this will loop though all answers 
    JSONObject answerObj = answers.getJSONObject(i); 
    String answer = answerObj.getString("answer");   
} 

ich die Suche vorschlagen einige Beispiele dafür, wie JSON parsen in Java, gibt es viele Beispiele und Tutorials

0

Sie eine für die von Java Json Bibliotheken benötigen.

final JSONObject j = new JSONObject(parsed); 

    JSONArray answers = j.getJSONArray("answers"); 

    System.out.println(answers.get(4)); 
0
You should used this sample code 

public String loadJSONFromAsset() { 
    String json = null; 
    try { 
     InputStream is = getAssets().open("yourfilename.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; 
} 

lesen Json-Datei wie folgt immer verwendet try und catch-Block

try { 
     JSONObject obj = new JSONObject(loadJSONFromAsset()); 
     JSONArray m_jArry = obj.getJSONArray("answers"); 

     for (int i = 0; i < m_jArry.length(); i++) { 

      JSONObject jo_inside = m_jArry.getJSONObject(i); 
      String answer = jo_inside.getString("answer"); 

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