javascript - js 在某个 json 节点后循环

标签 javascript json

在找到特定的 json 节点后,我尝试循环访问一些 json 节点。

所以,这是输入:

{
"search": {
    "result": {
        "DN": {
            "$": "A,B,C"
        },
        "attribute-value": [
            {
                "@name": "name",
                "$": "nameHere"
            },
            {
                "@name": "account",
                "$": "accountNameHere"
            },
            {
                "@name": "role",
                "$": "roleA"
            },
            {
                "@name": "role",
                "$": "roleB"
            }
        ]
    }
}}

如您所见,上面的 json 负载末尾有 2 个 Angular 色。 因此,我使用以下逻辑来实现 @name = Angular 色:

var attributeValue = node['search'].result['attribute-value'];
for (var i = 0; i < attributeValue.length; i++) {
    if (attributeValue[i]['@name'] === 'role') {
        var vRole = attributeValue[i].$;

        //The newJson.roles.role is to assign it to the new payload below
        newJson.roles.role = vRole;
    }
}

到达那里后,我想获取 roleA 和 roleB 并将其输出到以下 newJson 有效负载中:

var newJson = {
    "newJson": {
        "roles": [{
            "role": {}
        }, {
            "role": {}
        }],
    }
}

目标是能够获取所有 INPUT Angular 色节点并将其输出到 newJson 负载中,但是当我尝试在到达该 @name=role 后发出 for 循环时,它会失败。

如有任何建议,我们将不胜感激。 谢谢。

最佳答案

我认为你应该将一个新对象附加到 Angular 色数组中,就像在 for 循环中一样:

var attributeValue = node['search'].result['attribute-value'];
for (var i = 0; i < attributeValue.length; i++) {
    if (attributeValue[i]['@name'] === 'role') {
        var vRole = attributeValue[i].$;

        newJson.roles.push({
            role: vRole
        });
    }
}

希望这能有所帮助

关于javascript - js 在某个 json 节点后循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36893405/

相关文章:

javascript - Nodemailer 发送带有空正文的电子邮件

javascript - Bootstrap toggle-collapse 扩展了我的导航栏菜单但不会折叠它

ios - MainViewController 没有收到来自 NSNotificationCenter 的通知

java - 如何用Java生成Json

javascript - CORS 预检选项请求返回错误,但 POST 仍在发送

javascript - `application.js` 不再包含 Rails 3.1 应用程序的 app/assets/javascripts 中的所有脚本

javascript - leaflet-dvf 标记不会在 IE11 中呈现

java - JSON 的 Java 正则表达式无效

javascript - 如何将外部 JSON 文件读入我的 html/javascript 测验

javascript - 减慢 jQuery JSON 解析速度?