2017-05-15 96 views
0

所以我有一個Json文件,我已經解析,並且我想知道如何將Json文件中的信息獲取到屏幕上? Heres解析了Json。輸出解析的Json數據

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" 
} 
]} 

如何獲得例如 「4」 到一個變量?我希望我的問題很清楚,如果不是的話,評論。我想要做的只是輸出其中一個數字。

+0

檢查此http:// stackoverflow.com/questions/2591098/how-to-parse-json-in-java?rq=1 –

回答

2

使用此示例代碼,希望這將解決您的問題

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

感謝它對我的作品 –

+0

對不起é可能愚蠢的問題,但我不必調用這種方法?如果是這樣,我從oncreate還是從「loadJSONFromAsset」方法調用它?目前,我正在從oncreate方法調用「loadJSONFromAsset」方法,應該如何處理這個問題,還是從第一個方法中調用它? – random1234

+1

調用loadJSONFromAsset方法在parseJson中分配輸出並完成。它沒有長時間運行的任務,不需要爲此make調用創建單獨的線程鏈接parseJson(loadJSONFromAsset()); – Hasnain

1

解析JSON字符串。

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");   
} 

我建議尋找關於如何在Java解析JSON一些例子,也有大量的實例和教程

0

你需要的Java JSON庫爲該之一。

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; 
} 

讀取JSON文件像這樣總是用try和catch塊

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(); 
    }