2015-09-11 2 views
0

я пытаюсь разобрать этот код JSONКак разобрать JSON структурированную-JSON массив объектов в Java

{ 
    "resultCode":"350", 
    "message":"OK", 
    "result":1, 
    "data": 
{ 
    "totalCount":"2", 
    "videos":[ 
     { 
     "videoId":"73bfedf534", 
     "VideoUrl":"www.videourlexample.com", 
     "title":"vbsample1", 
     "description":"" 
     }, 

{ 
     "videoId":"73bfedf534", 
     "VideoUrl":"www.videourlexample.com", 
     "title":"vbsample2", 
     "description":"" 
     } 
    ] 
    } 
} 

я смог разобрать только.

"resultCode":"350", 
"message":"OK", 
"result":1, 

это код Java

JSONObject jsonObject = (JSONObject) 
//return the JSON code above. 
jsonParser.parse(getHTML("...httpRequest...")); 

    // get a String from the JSON object 
    String resultCode = (String) jsonObject.get("resultCode"); 
    System.out.println("[RESULTCODE] The message is: " + resultCode); 


    // get a String from the JSON object 
    String message = (String) jsonObject.get("message"); 
    System.out.println("[MESSAGE] The message is: " + message); 

    // get a number from the JSON object 
    long result = (long) jsonObject.get("result"); 
    System.out.println("[RESULT] The resultCode is: " + result); 

Я не могу разобрать "данные". Кто-то может мне помочь? Я хотел бы получить каждое значение из массива json отдельно ... как resultCode, сообщение и результат.

спасибо.

+0

возможно дубликат [Retreiving значения из вложенного JSON Object] (http://stackoverflow.com/questions/20899839/retreiving-values-from-nested-json-object) – PKuhn

ответ

1
JSONObject mainObj= new JSONObject(yourJSON); 
String resultCode= mainObj.get("resultCode"); 
String message= mainObj.get("message"); 
String result= mainObj.get("result"); 
JSONObject dataObj = mainObj.get("data"); 
JSONArray jsonArray = (JSONArray) dataObj.get("videos"); 
for (int i = 0; i <jsonArray.length(); i++) { 
    JSONObject obj= jsonArray.get(i); 
    String videoId=obj.get("videoId"); 
    String videoUrl=obj.get("VideoUrl"); 
    String title=obj.get("title"); 
    String description=obj.get("description"); 
    System.out.println("videoId="+videoId +"videoUrl="+videoUrl+"title=title"+"description="+description);   
} 
System.out.println("resultCode"+resultCode+"message"+message+"result"+result); 
+0

Я имею исправить код .. добавление некоторых cast и jsonArray.size(). И теперь это работает. Спасибо, товарищ –

0

Вы можете попробовать использовать это: -

JSONObject dataObj = (JSONObject)dataObj .get("data"); 
JSONArray jsonArray = (JSONArray) dataObj.get("videos"); 
for (int i = 0; i <jsonArray.length(); i++) { 
    System.out.println(((JSONObject)jsonArray.get(i)).get("videoUrl")); 
} 

В настоящее время я просто printes videoUrl, вы можете так же получить другие атрибуты для видео.

0

для использования данных:

int totalCount = (int) ((Map) jsonObject.get("data")).get("totalCount"); 

JSONArray videos = (JSONArray) jsonObject.get("data")).get("videos"); 

, а затем разобрать видео JSONArray.

Смежные вопросы