选择第一个JSON数组子值

时间:2016-06-23 23:05:02

标签: arrays 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;

4 个答案:

答案 0 :(得分:1)

您可以使用in表示法循环对象。使用hasOwnProperty以避免在对象中获取引用

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

答案 1 :(得分:0)

如果您想访问第一个孩子的值,可以使用

sms['1']

哪个会返回一个对象。如果要访问该对象内的键的值,可以使用sms['1']['address']sms['1']['body']

第一个[]访问第一层JSON的子级,第二个[<key_name>]访问第二层JSON的值,包含键和值。

答案 2 :(得分:0)

我不知道是否按照您的说明操作,但尝试使用此操作来访问此JSON的每个元素。

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

答案 3 :(得分: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));