2016-08-16 125 views
2

我想解析本地的json文件。到目前爲止,我可以讀取所有json的代碼,但不能返回每個單獨的密鑰。Android Studio - 解析JSON密鑰

JSON文件(level.json)

{ 
    "level1": { 
     "artist": "aaaa", 
     "title":"new title", 
      "year":"1990" 
    }, 
    "level2": { 
     "artist": "bbb", 
     "title":"new title2", 
      "year":"1992" 
    } 

} 

什麼我試圖做的是讓每個級別的關鍵。例如,我想從「level1」中獲得「藝術家」。

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

      InputStream is = getAssets().open("level.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。

JSONObject object = new JSONObject(); 
text.setText(object.getString("level1")); 

我該如何獲得取決於每個json對象的鍵?

回答

3

可以使用例如:

JSONObject object = new JSONObject(your_json_string); 
JSONObject level1 = object.getJSONObject("level1"); 
JSONObject level2 = object.getJSONObject("level2"); 

,現在你可以訪問藝術家,標題和年份那樣:

text.setText(level1.getString("artist")); 
text.setText(level1.getString("title")); 
text.setText(level1.getString("year")); 
+0

太謝謝你了....它的工作原理很good--我會在5分鐘內接受你的回答 –