javascript - 解析 JSON 以提取键和值
问题描述
我正在使用下面的代码进行服务现在休息出站呼叫,这按预期工作,但在第二次休息呼叫中,我尝试parse
使用 JSON 正文,但我无法检索所需表格格式的值
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 parser = new JSONParser();
var jsonObj = parser.parse(responseBody1);
var outputString = 'Name Domain-Name OS Cluster-Members UID';
for (var i=0; i < jsonObj.objects.length; i++) {
var obj = jsonObj.objects[i];
outputString = outputString + "\n" + obj.name + ", " + obj.domain.name + ", " + obj["operating-system"] + ", " + obj["cluster-member-names"] + ", " + obj.uid;
}
gs.log(outputString);
}
catch(ex) {
var message = ex.message;
}
预期的输出应该是这样的:
但我得到和输出是这样的:
*** Script: Name Domain-Name OS Cluster-Members UID
clus-cn-1, dom-cn-1, Gaia, dev-cn-c1,dev-cn-c2, 16b96771-d13a-4c11-b457-9c0861aaf3c8
clus-cn-2, dom-cn-2, Gaia, dev-cn-c3,dev-cn-c4, 385c0a22-275c-4a70-9489-2b6ccd191eb8
dev-cn-c1, dom-cn-1, undefined, undefined, 4652da03-0e2f-4a0a-880c-338396be0818
dev-cn-c2, dom-cn-1, undefined, undefined, 2dbbbfd4-80ac-4fd9-b792-0a5b468c6409
dev-cn-c3, dom-cn-2, undefined, undefined, 6037e235-f19a-49ac-a39c-4889d979acbe
dev-cn-c4, dom-cn-2, undefined, undefined, 022c44df-9271-46db-b782-da084c476dd2
dom_cn_1_Server, dom-cn-1, Unknown OS, undefined, 4f417c60-3541-4c0f-a542-9a100d857077
dom_cn_2_Server, dom-cn-2, Unknown OS, undefined, cebecd33-1efb-4530-9de9-7c666e588ee7
如何避免前两行之后的值
示例 json
{
"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" : "10.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" : "10.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" : "10.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" : "10.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" : "10.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" : "10.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" : "10.126.102.13",
"interfaces" : [ {
"interface-name" : "eth0",
"ipv4-address" : "10.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" : "10.126.102.14",
"interfaces" : [ {
"interface-name" : "eth0",
"ipv4-address" : "10.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" : "10.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" : "10.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
}
解决方案
好吧,看起来代码正在做应该做的事情。
如果您只想过滤操作系统名称为 的行Gaia
,您可以将您的更改for
为:
for (var i=0; i < jsonObj.objects.length; i++) {
if (obj["operating-system"] == "Gaia") {
var obj = jsonObj.objects[i];
outputString = outputString + "\n" +
obj.name + ", " +
obj.domain.name + ", " +
obj["operating-system"] + ", " +
obj["cluster-member-names"] + ", " + obj.uid;
}
}
推荐阅读
- docker - 试图实例化商业票据智能合约,错误启动容器 /host/var/run/docker.sock: connect: no such file or directory
- flutter - 如何在颤动小部件测试中测试鼠标滚动事件?
- bash - 如何修改和剪切(使用相同的模式)单行中的字符串列表?
- html - 根据前一个字段隐藏/显示字段 - 提交隐藏字段值的问题
- discord.py - Discord.py 机器人禁止一个人
- r - R shinyapp:renderUI 不适用于嵌套模块 R6 类
- javascript - 删除多个字段表单json节点
- r - 使用 bench::mark 函数对 r 中的代码进行基准测试
- python - 动态抓取 JSON 值
- java - 收到错误:无法找到或加载主类解决方案