2016-06-23 3 views
0

Я хочу получить значение, которое содержит первый дочерний элемент массива JSON.Выберите первое дочернее значение массива JSON

Это массив:

var sms = { 
    '1' : { 
     'address' : '+123', 
     'body' : 'SMS1' 
    }, 
    '2' : { 
     'address' : '+123', 
     'body' : 'SMS2' 
    }, 
    '3' : { 
     'address' : '+123', 
     'body' : 'SMS3' 
    }, 
    '4' : { 
     'address' : '+123', 
     'body' : 'SMS4' 
    } 
}; 

Причина в том, что я хочу петли в нем искать строку, используя значение первые Чайлдс, как это выше. Пример смс. [0] = 1;

+0

Это не массив ... –

+0

Это массив JSON. –

ответ

1

Вы можете перемещаться по объекту, используя нотацию in. Используйте hasOwnProperty, чтобы избежать попадания ссылки на объект

for (ii in sms) { 
    if (sms.hasOwnProperty(ii)) { 
    console.log(ii, sms[ii], sms[ii]['address'], sms[ii]['body']); 
    } 
} 
0

Если вы хотите получить доступ к стоимости первого ребенка вы можете использовать

sms['1']

который будет возвращать объект. Если вы хотите получить доступ к значениям для ключей внутри этого объекта, вы можете использовать sms['1']['address'] или sms['1']['body'].

Первый [] обращается к ребенку первого уровня JSON, а второй [<key_name>] обращается к значению второго уровня JSON, содержащему ключи и значения.

0

Я не знаю, следую ли вы вашим инструкциям, но попробуйте это, чтобы получить доступ к каждому элементу этого JSON.

for(i in sms){ 
console.log(sms[i]);  
} 
+0

Возвращает тип объекта, а не значение. –

0

Вы можете JSON API для разбора JSON ввода и извлечения соответствующего ребенка

JSONObject obj = new JSONObject(stringData); 
JSONArray resultArr = obj.getJSONArray("sms"); 
JSONArray headrArr = null; 
JSONObject jo = resultArr.optJSONObject(0); 
if(jo != null){ 
    headrArr = jo.names(); 
} 
System.out.println(headrArr.get(0)); 
Смежные вопросы