2016-03-01 2 views
3

У меня есть объект JSON, который выглядит примерно так:Java - получение объекта JSON значений

cb = {"content":[{"name":"abc"}{"name":"bcd"}{"name":"xyz"}...]} 

и я импортировал библиотеку JSON как:

import org.json.JSONObject;

Теперь я хочу использовать цикл петли для получения значений имени в каждом из вспомогательных объектов ...

for(int x = 10; x < numberOfSubElemtnts; x = x+1) { 
    //print out the name values 
    } 

Вывода должен быть:

а

BCD

хуг

Как я должен оценить длину массива и напечатать значение имен?

+3

Посмотрите в библиотеку GSON действительно потрясающий для такого рода вещей. –

+0

sry я обновил свой вопрос. Я использую библиотеку JSON (JSONObject) – hnvasa

+1

, затем ознакомьтесь с http://www.tutorialspoint.com/json/json_java_example.htm. Я думаю, что это ваша библиотека, и я думаю, что она отвечает на ваш вопрос. –

ответ

3

Вы можете перебирать массив так:

String content = "{\"content\":[{\"name\":\"abc\"},{\"name\":\"bcd\"},{\"name\":\"xyz\"}]}"; 
    JSONObject jsonObject = new JSONObject(content); 
    JSONArray jsonArray = jsonObject.getJSONArray("content"); 
    for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject object = jsonArray.getJSONObject(i); 
     System.out.println(object.getString("name")); 
    } 
+0

это работает отлично ... thnx! – hnvasa

1
JSONParser parser = new JSONParser(); 
String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]"; 
try{ 
    Object obj = parser.parse(s); 
    JSONArray array = (JSONArray)obj; 
    for(int i=0;i<array.length();i++{ 
     System.out.println(array.get(i).getString("name"); 
     } 
}catch(ParseException pe){ 
    System.out.println("position: " + pe.getPosition()); 
    System.out.println(pe); 
    } 

Также в этом примере вы будете иметь, чтобы изменить формат вашей строки, чтобы соответствовать один я имею в шахте

+0

спасибо ... я попробую это решение в ближайшее время! – hnvasa

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