2014-02-01 5 views
0

Ну, у меня было длинное сообщение с большим количеством данных и пример кода, но я думаю, что понял эту проблему и просто ищу подтверждение.Получение массива из объекта JSON

В частности, при использовании json.getJSONArray (TAG), где json является JSONObject, это будет работать только для JSONObject, ближайшего к массиву? IE, если есть

{"obj1": {"obj2": {"obj3": {"array":[]}}}} 

тогда звонок должен быть на object3.getJSONArray? Я думал, что могу вытащить любой массив вне зависимости от гнездования, но похоже, что это не так?

Приветствия

ответ

3

В вашем случае, вы должны использовать

obj1.getJSONObject("obj1").getJSONObject("obj2").getJSONObject("obj3").getJSONArray("array"); 

Чтобы достичь этого вложенного массива.

0

Вот так getJSONArray ищет объект массива на уровне, что вы на самом деле являетесь.

Чтобы получить массив, вы должны пойти: JSONObject mainObject = new JSONObject("{Oject 1: {Object 2: {Object 3: {[ARRAY]}}}}") JSONObject object1 = mainObject.getJSONObject("object 1"); and so on till... JSONArray object1 = object2.getJSONArray("object 3");

0

Вы можете прочитать о формате JSON here.

Рассмотрим эти два Java-классы

public class Foo { 
    private Bar bar; 
    private String value; 
} 

public class Bar { 
    private int count; 
} 

и объекты

Foo foo = new Foo(); 
foo.value = "some value"; 
Bar bar = new Bar(); 
bar.count = 42; 
foo.bar = bar; 

Не могли бы вы сделать

foo.count = 100; 

? Ответ - нет. поле count принадлежит к объекту Bar, а не к объекту Foo.

То же самое относится к JSON.

{ 
    "bar": { 
     "count": 42 
    }, 
    "value": "some value" 
} 

count элемент является JSON-примитивом, который принадлежит к объекту JSON с именем bar.

(Тот факт, что это массив JSON не имеет никакого значения.)

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