2016-11-03 3 views
-4

어떻게 같은 JSON 문자열을 구문 분석 할 수 있습니다 (하지만 난 동적 값이) 내가 정적 값을 전에 본구문 분석 JSON 문자열 안드로이드

{ 
"data":{ 
     "dynamicValue1":{ 
          "serial":"1", 
          "name":"ABC" 
         }, 
     "dynamicValue2":{ 
          "serial":"2", 
          "name":"DEF" 
         }, 
     "dynamicValue3":{ 
          "serial":"3", 
          "name":"GHI" 
         } 
     } 
} 

대부분의 코드를,하지만 난 사전에하시기 바랍니다 감사합니다 도움이 필요한.

+0

가 명확하게 할 수 수동 구문 분석하려면 : ** dynamicValue1 ** 당신의 조각에 어떤 임의의 값이 실제 응용 프로그램에 노드를? – Radinator

+0

JSON의 구조를 제어 할 수 있으면 dynamicValueN 키를 제거하고이를 JSON Array로 변환해야합니다. - http://pastebin.com/9ddpP8Lh – Knossos

+2

또는 시도해보십시오. http://stackoverflow.com/questions/7304002/how-to-parse-a-dynamic-json-key-in-a-nested-json- 결과 – Radinator

답변

0

JSONObject 키()를 사용하여 키를 가져온 다음 각 키를 반복하여 동적 값을 얻는 것이 좋습니다.

당신의 JSON 문자열 코드에 따라하는 수 있어야 뭔가는 다음과 같다 : - 당신은이 솔루션을 시도 할 수 있습니다에

//refers to the current element in the array "data" 
JSONObject mainObj = new JSONObject(yourString); 
JSONObject dynamicValue1 = mainObj.getJSONObject("dynamicValue1"); 
Iterator key = dynamicValue1.keys(); 

while(key.hasNext()) { 
    // loop to get the dynamic key 
    String currentDynamicKey = (String)key.next(); 

    //get value of the dynamic key 
    JSONObject currentDynamicValue = dynamicValue1.getJSONObject(currentDynamicKey); 

    // here do something with the other value... 
} 

나는 제안한다.

0

Jackson과 같은 JSON 직렬 변환기를 사용할 수 있습니다.

0

당신이 다음 사용자 반복자 같은 ..

   JSONObject mainObj = new JSONObject(yourString); 
       JSONObject dynamicObj = mainObj.getJSONObject("data"); 
         jObject = new JSONObject(dynamicObj .toString()); 
           Iterator<?> keys = jObject.keys(); 
           while (keys.hasNext()) { 
            String key = (String) keys.next(); 
            JSONObject mainObj=jObject.getJSonOject(key);        
           String serialValue=mainObj.optString("serial") 
           String nameValue=mainObj.optString("name") 

           }