2016-05-13 38 views
0

我有一個json與字符串之間的冒號,我不知道我該如何解析它。我知道,我沒有在JSON數組,但我不知道我怎樣才能得到的值...如何在Android中用冒號解析json?

{ 
    "config": { 
     "network": { 
      "hni:21407" : "num:[INTNUM]", 
      "hni:311490" : "num:044[INTNUM]" 
     } 
    } 
} 

這就是我想要的,但我從來沒有經歷過的去循環,並不確定是否需要它。

JSONObject obj = new JSONObject(netWorkJson); 
String arr = obj.optString("network"); 

for(int i = 0; i < arr.length(); i++) { 
    String hni = obj.getString("hni"); 
    String num = obj.getString("num"); 
} 

在此先感謝

+0

json對象內部的json objet類型 – Haroon

+0

你面臨的是什麼問題Json看起來很好,對象也很好 – AnswerDroid

回答

1

你首先需要解析內部的json對象T「網絡」,之後你可以遍歷它的鍵和一個得到的值逐一:

private void parseJSON(String netWorkJson) throws JSONException { 
    JSONObject obj = new JSONObject(netWorkJson); 
    JSONObject config = obj.getJSONObject("config"); 
    JSONObject network = config.getJSONObject("network"); 

    Iterator<?> keys = network.keys(); 
    while(keys.hasNext()) { 
     String key = (String) keys.next(); 
     String value = network.getString(key); 
    } 
} 

的這種美是它也將工作,如果你有100個的HNI值例如,這你不必一一得到它們。

0

networkJSONObject而不是JSONArray,因此沒有必要使用循環從it.just使用中獲得價值做得一樣:

JSONObject obj = new JSONObject(netWorkJson); 
// get network JSONObject from obj 

JSONObject network=obj.getJSONObject("network"); 

// get both values from network object 
String strHni=network.optString("hni:21407"); 
String strNum =network.optString("hni:311490"); 
0
JSONObject message = new JSONObject(config); 
String value=message.getJSONObject("network").getString("hni:21407") 

試試這個

0
try { 
     JSONObject jsonObject = new JSONObject("config"); 

     JSONArray jsonArray = jsonObject.getJSONArray("network"); 

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

      JSONObject jsonObject1 = jsonArray.getJSONObject(i); 

      String hni21407 = jsonObject1.getString("hni:21407"); 
      String hni311490 = jsonObject1.getString("hni:311490"); 

     } 

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