function getNames() {
return ['Jack', 'Jane'];
}
以上数据需要解析为如下所示:
{
"description": "NetSpy Integration",
"event_type": "trigger",
"service_key": "34a9a87f27f6173f",
"details": {
"uri": {
"slashes": true,
"search": "",
"query": {
},
"protocol": "http:",
"port": null,
"pathname": "/integration/34a9a87f27f6173f /enqueue",
"path": "/integration/34a9a87f27f6173f /enqueue",
"href": "http://events.pagerduty.com/integration/34a9a87f27f6173f/enqueue",
"hostname": "events.pagerduty.com",
"host": "events.pagerduty.com",
"hash": null,
"auth": null
},
"rawBody": "{\"client_url\":\"http://GINC-prod-nsg-mon-5:9100/\",\"service_key\":\"34a9a87f27f6173f \",\"event_type\":\"trigger\",\"description\":\"Interface is down for a viptela router\",\"client\":\"NetSpyGlassTest\",\"details\":{\"client\":\"NSG\",\"client_url\":\"https://GINC.netspyglass.com/\",\"component\":\"ge0/1\",\"dedup_key\":\"$dedupKey\",\"device\":\"myrtr1\",\"event_action\":\"trigger\",\"payload.class\":\"deploy\",\"payload.cmdb_ci\":\"myrtr1\",\"payload.component\":\"postgres\",\"payload.custom_details.abc\":\"123\",\"payload.custom_details.def\":\"Hi, its Nikita\",\"payload.group\":\"prod-datapipe\",\"payload.severity\":\"{}\",\"payload.source\":\"https://GINC.netspyglass.com/\",\"payload.summary\":\"Interface is down for a router\",\"payload.timestamp\":\"\",\"routing_key\":\"34a9a87f27f6173f \",\"value\":\"2.0\"},\"incident_key\":\"ViptelaRouterInterfaceDown.9853.2\",\"contexts\":[{\"href\":\"http://GINC-prod-nsg-mon-5:9100/\",\"type\":\"link\"},{\"src\":\"https://GINC.netspyglass.com/emb_graph.html?update=true&networkId=1&intervalHr=24&width=500&height=300&vars=ifOperStatus.9853.2\",\"type\":\"image\"}]}",
"method": "POST",
"headers": [
{
"X-Real-IP": "10.16.121.254"
},
{
"X-Forwarded-For": "10.16.121.254"
},
{
"Host": "events.pagerduty.com"
},
{
"X-Forwarded-Proto": "https"
},
{
"Connection": "close"
},
{
"Content-Length": "1054"
},
{
"User-Agent": "Apache-HttpClient/4.5.2 (Java/11.0.4)"
},
{
"Accept-Encoding": "gzip,deflate"
},
{
"X-PD-Event-Received": "1572013154"
}
],
"body": ""
}
}
我尝试了以下操作:
description: "Interface is down for a viptela router"
cmdb_ci: "myrtr1"
Error URL: https://GINC.netspyglass.com/emb_graph.html?update=true&networkId=1&intervalHr=24&width=500&height=300&vars=ifOperStatus.9853.2
我收到以下错误:
执行转换时出错:TypeError:无法读取未定义的属性'payload'
答案 0 :(得分:0)
您的JSON的rawBody
成员似乎是字符串,而不是对象,因此您需要执行以下操作:
var body = JSON.parse(PD.inputRequest.rawBody);
在访问其成员之前。
当前,您只是将字符串本身分配给body
。
此外,解析后,与有效负载相关的JSON对象中的键实际上不是子对象,这些键实际上是像payload.summary
之类的字符串,因此要访问那些做
body.details['payload.summary']
将所有内容放在一起,您提供的代码应该更像这样(尽管它不提供您列出的输出,但我认为除了您提供的代码之外,还有更多其他事情要做):
var body = JSON.parse(PD.inputRequest.rawBody);
var cef_event = {
event_type: PD.Trigger,
description: body.details['payload.summary'],
cmdb_ci: body.details['payload.cmdb_ci'],
event_action: PD.Trigger,
details: body.details
}
答案 1 :(得分:0)
var data = {
description: "NetSpy Integration",
event_type: "trigger",
service_key: "34a9a87f27f6173f",
details: {
uri: {
slashes: true,
search: "",
query: {},
protocol: "http:",
port: null,
pathname: "/integration/34a9a87f27f6173f /enqueue",
path: "/integration/34a9a87f27f6173f /enqueue",
href: "http://events.pagerduty.com/integration/34a9a87f27f6173f/enqueue",
hostname: "events.pagerduty.com",
host: "events.pagerduty.com",
hash: null,
auth: null
},
rawBody: '{"client_url":"http://GINC-prod-nsg-mon-5:9100/","service_key":"34a9a87f27f6173f ","event_type":"trigger","description":"Interface is down for a viptela router","client":"NetSpyGlassTest","details":{"client":"NSG","client_url":"https://GINC.netspyglass.com/","component":"ge0/1","dedup_key":"$dedupKey","device":"myrtr1","event_action":"trigger","payload.class":"deploy","payload.cmdb_ci":"myrtr1","payload.component":"postgres","payload.custom_details.abc":"123","payload.custom_details.def":"Hi, its Nikita","payload.group":"prod-datapipe","payload.severity":"{}","payload.source":"https://GINC.netspyglass.com/","payload.summary":"Interface is down for a router","payload.timestamp":"","routing_key":"34a9a87f27f6173f ","value":"2.0"},"incident_key":"ViptelaRouterInterfaceDown.9853.2","contexts":[{"href":"http://GINC-prod-nsg-mon-5:9100/","type":"link"},{"src":"https://GINC.netspyglass.com/emb_graph.html?update=true&networkId=1&intervalHr=24&width=500&height=300&vars=ifOperStatus.9853.2","type":"image"}]}',
method: "POST",
headers: [{
"X-Real-IP": "10.16.121.254"
},
{
"X-Forwarded-For": "10.16.121.254"
},
{
Host: "events.pagerduty.com"
},
{
"X-Forwarded-Proto": "https"
},
{
Connection: "close"
},
{
"Content-Length": "1054"
},
{
"User-Agent": "Apache-HttpClient/4.5.2 (Java/11.0.4)"
},
{
"Accept-Encoding": "gzip,deflate"
},
{
"X-PD-Event-Received": "1572013154"
}
],
body: ""
}
};
data = JSON.parse(data.details.rawBody);
console.log(data.details["payload.class"]);