【发布时间】:2021-05-11 07:33:34
【问题描述】:
如果包含字符串,我正在尝试推断 json。我的 json 是这样的:
[
{
"name":"PE02S-PK00400_2002",
"ip":"",
"pk":0.4,
"roadCode":"A32",
"roadName":"A32",
"roadDescription":"A32 TORINO-BARDONECCHIA",
"directionName":"A32_DIR_A",
"directionDescription":"BARDONECCHIA",
"sectionName":"A32_DIR_A_SEZ1",
"sectionDescription":"RIVOLI - SUSA",
"laneName":null,
"laneDescription":null,
"tunnelName":"A32_GALLERY_LA_PEROSA",
"tunnelDescription":"LA PEROSA",
"idTecnico":"2002"
},
{
"name":"PE04S-PK00500_2004",
"ip":"",
"pk":0.5,
"roadCode":"A32",
"roadName":"A32",
"roadDescription":"A32 TORINO-BARDONECCHIA",
"directionName":"A32_DIR_A",
"directionDescription":"BARDONECCHIA",
"sectionName":"A32_DIR_A_SEZ1",
"sectionDescription":"RIVOLI - SUSA",
"laneName":null,
"laneDescription":null,
"tunnelName":"A32_GALLERY_LA_PEROSA",
"tunnelDescription":"LA PEROSA",
"idTecnico":"2004"
},
{
"name":"PE06S-PK00750_2006",
"ip":"",
"pk":0.75,
"roadCode":"A32",
"roadName":"A32",
"roadDescription":"A32 TORINO-BARDONECCHIA",
"directionName":"A32_DIR_A",
"directionDescription":"BARDONECCHIA",
"sectionName":"A32_DIR_A_SEZ1",
"sectionDescription":"RIVOLI - SUSA",
"laneName":null,
"laneDescription":null,
"tunnelName":"A32_GALLERY_LA_PEROSA",
"tunnelDescription":"LA PEROSA",
"idTecnico":"2006"
}
]
javascript 脚本是这样的:
function (value) {
var res = ''
var json = JSON.parse(value)
for (i = 0; i < json.length; i++) {
if (json[i].name =~ "{HOST.NAME}") {
res = JSON.stringify(json[i])
return res
}
}
}
{HOST.NAME} 是 SOS-PE02S-PK00400
一切正常,除了字段(名称)为-1。
结果如下:
{
"name":-1,
"ip":"",
"pk":0.4,
"roadCode":"A32",
"roadName":"A32",
"roadDescription":"A32 TORINO-BARDONECCHIA",
"directionName":"A32_DIR_A",
"directionDescription":"BARDONECCHIA",
"sectionName":"A32_DIR_A_SEZ1",
"sectionDescription":"RIVOLI - SUSA",
"laneName":null,
"laneDescription":null,
"tunnelName":"A32_GALLERY_LA_PEROSA",
"tunnelDescription":"LA PEROSA",
"idTecnico":"2002"
}
这是我期望的结果:
{
"name":"PE02S-PK00400_2002",
"ip":"",
"pk":0.4,
"roadCode":"A32",
"roadName":"A32",
"roadDescription":"A32 TORINO-BARDONECCHIA",
"directionName":"A32_DIR_A",
"directionDescription":"BARDONECCHIA",
"sectionName":"A32_DIR_A_SEZ1",
"sectionDescription":"RIVOLI - SUSA",
"laneName":null,
"laneDescription":null,
"tunnelName":"A32_GALLERY_LA_PEROSA",
"tunnelDescription":"LA PEROSA",
"idTecnico":"2002"
}
我不明白哪里错了。如果您能帮助我,我将不胜感激。 非常感谢。
【问题讨论】:
-
你到底想达到什么目的?
-
@SAM 我想获取整个 JSON。
-
已经是JS数组了。
-
@Reyno 我想知道我的字符串是否包含在 JSON 名称字段中并提取 json。用法 = ~
-
@SAM 问题是我得到了 json,但是 name 字段设置为 -1。为什么?
标签: javascript json jsonpath zabbix