【问题标题】:Looping through JSON arrays遍历 JSON 数组
【发布时间】:2011-02-05 18:37:23
【问题描述】:

我正在尝试在某些 JSON 输出的标头中提取字段名称。以下是 JSON 标头信息的示例:

{"HEADER":{"company":{"label":"Company Name"},"streetaddress":{"label":"Street Address"},"ceo":{"label":"CEO Name","fields":{"firstname":{"label":"First Name"},"lastname":{"label":"Last Name"}}}

我可以使用以下代码遍历标题并输出字段和标签(即公司和公司名称):

obj = JSON.parse(jsonResponse);

for (var key in obj.HEADER) {
    response.write ( obj.HEADER[key].label );
    response.write ( key );
}

但不知道如何循环并输出字段的子数组(即名字和名字)。

有什么想法吗?

【问题讨论】:

    标签: javascript arrays json loops


    【解决方案1】:

    试试这个?

    obj = JSON.parse(jsonResponse);
    
    for (var key in obj.HEADER) {
        response.write ( obj.HEADER[key].label );
        response.write ( key );
        if (obj.HEADER[key].fields) {
            for (var fieldKey in obj.HEADER[key].fields) {
                response.write(obj.HEADER[key].fields[fieldKey].label);
                response.write(fieldKey);
            }
        }
    }
    

    或者,如果字段本身可以有更多字段,请尝试递归:

    function parseResults(obj) {
        for (var key in obj) {
            response.write ( obj[key].label );
            response.write ( key );
            if (obj[key].fields) {
                parseResults(obj[key].fields);
            }
        }
    }
    
    obj = JSON.parse(jsonResponse);
    parseResults(obj.HEADER);
    

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2013-02-12
      • 2016-08-07
      • 1970-01-01
      相关资源
      最近更新 更多