首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript解析嵌套的json

如何使用javascript解析嵌套的json
EN

Stack Overflow用户
提问于 2018-08-28 18:06:11
回答 1查看 1.6K关注 0票数 0

我使用下面的代码进行rest出站调用,这与预期的一样工作。但是在第二个rest调用中,我试图解析json主体,但我无法检索到值

代码语言:javascript
复制
 try { 
 var r = new sn_ws.RESTMessageV2('test', 'post');

 var response = r.execute();
 var responseBody = response.getBody();
 var httpStatus = response.getStatusCode();
 gs.print(response.getBody());
 gs.print(response.getStatusCode());
 var JsonObject = JSON.parse(responseBody);
 var sid = JsonObject.sid; 
 gs.print(sid);

 var r1 = new sn_ws.RESTMessageV2('gateways', 'POST' );
 r1.setRequestHeader("X-chkp-sid",sid );
 var response1 = r1.execute();
 var responseBody1 = response1.getBody();
 var httpStatus = response1.getStatusCode()
 gs.print(response1.getBody());
 var JsonObject1 = JSON.parse(responseBody1);
 var objects = JsonObject1.objects;

 var database = new GlideRecord('u_test');
 database.initialize();
 database.query();
 database.deleteMultiple();

for (var key in objects) { // Loop through all the elements in the objects array

    var array_element=objects[key];

    for (var innerKey in array_element)//For each element, see if it contains key named cluster-member-names
        {
        if(innerKey == "cluster-member-names"){
            var cluster_array = array_element[innerKey];

            for (var clusterKey in cluster_array)// Print each element in the Cluster array 
                {
                gs.print(cluster_array[clusterKey]);
                                test = cluster_array[clusterKey];
                                gs.print(test);
                                var database = new GlideRecord('u_test');
                                database.initialize();
                                database.u_device = test;
                                database.insert();

            }
        }
    }
}
}
catch(ex) {
 var message = ex.message;
}

请参阅一个示例json文件

代码语言:javascript
复制
{
  "objects" : [ {
    "uid" : "16b96771-d13a-4c11-b457-9c0861aaf3c8",
    "name" : "clus-cn-1",
    "type" : "CpmiGatewayCluster",
    "domain" : {
      "uid" : "16280a32-183a-4050-b698-f59dbe488da6",
      "name" : "dom-cn-1",
      "domain-type" : "domain"
    },
    "policy" : {
      "access-policy-installed" : true,
      "access-policy-name" : "Standard",
      "access-policy-installation-date" : {
        "posix" : 1533629226178,
        "iso-8601" : "2018-08-07T16:07+0800"
      },
      "threat-policy-installed" : false
    },
    "operating-system" : "Gaia",
    "hardware" : "Open server",
    "version" : "R80",
    "ipv4-address" : "53.126.102.12",
    "network-security-blades" : {
      "firewall" : true,
      "site-to-site-vpn" : true
    },
    "management-blades" : { },
    "cluster-member-names" : [ "dev-cn-c1", "dev-cn-c2" ],
    "vpn-encryption-domain" : "addresses_behind_gw",
    "sic-status" : "uninitialized",
    "tags" : [ ],
    "icon" : "NetworkObjects/cluster",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533629193330,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533629186803,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "385c0a22-275c-4a70-9489-2b6ccd191eb8",
    "name" : "clus-cn-2",
    "type" : "CpmiGatewayCluster",
    "domain" : {
      "uid" : "6c2f639f-db32-4255-88ef-fb9b0e820051",
      "name" : "dom-cn-2",
      "domain-type" : "domain"
    },
    "policy" : {
      "access-policy-installed" : true,
      "access-policy-name" : "Standard",
      "access-policy-installation-date" : {
        "posix" : 1533631724838,
        "iso-8601" : "2018-08-07T16:48+0800"
      },
      "threat-policy-installed" : false
    },
    "operating-system" : "Gaia",
    "hardware" : "Open server",
    "version" : "R80",
    "ipv4-address" : "53.126.102.16",
    "network-security-blades" : {
      "firewall" : true
    },
    "management-blades" : { },
    "cluster-member-names" : [ "dev-cn-c3", "dev-cn-c4" ],
    "vpn-encryption-domain" : "addresses_behind_gw",
    "sic-status" : "uninitialized",
    "tags" : [ ],
    "icon" : "NetworkObjects/cluster",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533631690759,
        "iso-8601" : "2018-08-07T16:48+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533630083711,
        "iso-8601" : "2018-08-07T16:21+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "4652da03-0e2f-4a0a-880c-338396be0818",
    "name" : "dev-cn-c1",
    "type" : "CpmiClusterMember",
    "domain" : {
      "uid" : "16280a32-183a-4050-b698-f59dbe488da6",
      "name" : "dom-cn-1",
      "domain-type" : "domain"
    },
    "policy" : { },
    "ipv4-address" : "53.126.102.9",
    "interfaces" : [ {
      "interface-name" : "eth1",
      "ipv4-address" : "10.10.10.1",
      "ipv4-network-mask" : "255.255.255.240",
      "ipv4-mask-length" : 28,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : false,
        "ip-address-behind-this-interface" : "network defined by the interface ip and net mask",
        "leads-to-dmz" : false
      }
    }, {
      "interface-name" : "eth0",
      "ipv4-address" : "53.126.102.9",
      "ipv4-network-mask" : "255.255.255.192",
      "ipv4-mask-length" : 26,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : true
      }
    } ],
    "sic-status" : "communicating",
    "tags" : [ ],
    "icon" : "NetworkObjects/Cluster_member",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533629193630,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533629187252,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "2dbbbfd4-80ac-4fd9-b792-0a5b468c6409",
    "name" : "dev-cn-c2",
    "type" : "CpmiClusterMember",
    "domain" : {
      "uid" : "16280a32-183a-4050-b698-f59dbe488da6",
      "name" : "dom-cn-1",
      "domain-type" : "domain"
    },
    "policy" : { },
    "ipv4-address" : "53.126.102.10",
    "interfaces" : [ {
      "interface-name" : "eth1",
      "ipv4-address" : "10.10.10.2",
      "ipv4-network-mask" : "255.255.255.240",
      "ipv4-mask-length" : 28,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : false,
        "ip-address-behind-this-interface" : "network defined by the interface ip and net mask",
        "leads-to-dmz" : false
      }
    }, {
      "interface-name" : "eth0",
      "ipv4-address" : "53.126.102.10",
      "ipv4-network-mask" : "255.255.255.192",
      "ipv4-mask-length" : 26,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : true
      }
    } ],
    "sic-status" : "communicating",
    "tags" : [ ],
    "icon" : "NetworkObjects/Cluster_member",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533629193427,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533629188258,
        "iso-8601" : "2018-08-07T16:06+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "6037e235-f19a-49ac-a39c-4889d979acbe",
    "name" : "dev-cn-c3",
    "type" : "CpmiClusterMember",
    "domain" : {
      "uid" : "6c2f639f-db32-4255-88ef-fb9b0e820051",
      "name" : "dom-cn-2",
      "domain-type" : "domain"
    },
    "policy" : { },
    "ipv4-address" : "53.126.102.13",
    "interfaces" : [ {
      "interface-name" : "eth0",
      "ipv4-address" : "53.126.102.13",
      "ipv4-network-mask" : "255.255.255.192",
      "ipv4-mask-length" : 26,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : true
      }
    }, {
      "interface-name" : "eth1",
      "ipv4-address" : "10.10.20.1",
      "ipv4-network-mask" : "255.255.255.240",
      "ipv4-mask-length" : 28,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : false,
        "ip-address-behind-this-interface" : "network defined by the interface ip and net mask",
        "leads-to-dmz" : false
      }
    } ],
    "sic-status" : "communicating",
    "tags" : [ ],
    "icon" : "NetworkObjects/Cluster_member",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533631689704,
        "iso-8601" : "2018-08-07T16:48+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533630084104,
        "iso-8601" : "2018-08-07T16:21+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "022c44df-9271-46db-b782-da084c476dd2",
    "name" : "dev-cn-c4",
    "type" : "CpmiClusterMember",
    "domain" : {
      "uid" : "6c2f639f-db32-4255-88ef-fb9b0e820051",
      "name" : "dom-cn-2",
      "domain-type" : "domain"
    },
    "policy" : { },
    "ipv4-address" : "53.126.102.14",
    "interfaces" : [ {
      "interface-name" : "eth0",
      "ipv4-address" : "53.126.102.14",
      "ipv4-network-mask" : "255.255.255.192",
      "ipv4-mask-length" : 26,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : true
      }
    }, {
      "interface-name" : "eth1",
      "ipv4-address" : "10.10.20.2",
      "ipv4-network-mask" : "255.255.255.240",
      "ipv4-mask-length" : 28,
      "dynamic-ip" : false,
      "topology" : {
        "leads-to-internet" : false,
        "ip-address-behind-this-interface" : "network defined by the interface ip and net mask",
        "leads-to-dmz" : false
      }
    } ],
    "sic-status" : "communicating",
    "tags" : [ ],
    "icon" : "NetworkObjects/Cluster_member",
    "groups" : [ ],
    "comments" : "",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533631690171,
        "iso-8601" : "2018-08-07T16:48+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533630085006,
        "iso-8601" : "2018-08-07T16:21+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "4f417c60-3541-4c0f-a542-9a100d857077",
    "name" : "dom_cn_1_Server",
    "type" : "CpmiHostCkp",
    "domain" : {
      "uid" : "16280a32-183a-4050-b698-f59dbe488da6",
      "name" : "dom-cn-1",
      "domain-type" : "domain"
    },
    "policy" : { },
    "operating-system" : "Unknown OS",
    "hardware" : "Open server",
    "version" : "R80.10",
    "ipv4-address" : "53.126.102.11",
    "network-security-blades" : { },
    "management-blades" : {
      "network-policy-management" : true,
      "logging-and-status" : true
    },
    "sic-status" : "uninitialized",
    "tags" : [ ],
    "icon" : "NetworkObjects/CheckPoint/Hosts/xHost_CP",
    "groups" : [ ],
    "comments" : "Domain Management Server",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533621654552,
        "iso-8601" : "2018-08-07T14:00+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533621625970,
        "iso-8601" : "2018-08-07T14:00+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  }, {
    "uid" : "cebecd33-1efb-4530-9de9-7c666e588ee7",
    "name" : "dom_cn_2_Server",
    "type" : "CpmiHostCkp",
    "domain" : {
      "uid" : "6c2f639f-db32-4255-88ef-fb9b0e820051",
      "name" : "dom-cn-2",
      "domain-type" : "domain"
    },
    "policy" : { },
    "operating-system" : "Unknown OS",
    "hardware" : "Open server",
    "version" : "R80.10",
    "ipv4-address" : "53.126.102.15",
    "network-security-blades" : { },
    "management-blades" : {
      "network-policy-management" : true,
      "logging-and-status" : true
    },
    "sic-status" : "uninitialized",
    "tags" : [ ],
    "icon" : "NetworkObjects/CheckPoint/Hosts/xHost_CP",
    "groups" : [ ],
    "comments" : "Domain Management Server",
    "color" : "black",
    "meta-info" : {
      "lock" : "unlocked",
      "validation-state" : "ok",
      "last-modify-time" : {
        "posix" : 1533627992781,
        "iso-8601" : "2018-08-07T15:46+0800"
      },
      "last-modifier" : "System",
      "creation-time" : {
        "posix" : 1533627964438,
        "iso-8601" : "2018-08-07T15:46+0800"
      },
      "creator" : "System"
    },
    "read-only" : true
  } ],
  "from" : 1,
  "to" : 8,
  "total" : 8
}

使用这段代码,我只能检索“cluster -member name”,但我还需要提取“domain name”和集群名称

期望如下所示的响应,因此我可以将它们插入到相应的表中

enter image description here

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 20:02:26

基于这个问题,我认为下面的问题应该是一个很好的起点,可以进一步探索。

代码语言:javascript
复制
obj.objects.forEach(items => {
  let name = items.name;
  let domainName = items.domain.name;
  let memberNames = items['cluster-member-names'];
});

这是jsfiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52055242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档