嗨,我正在尝试根据值过滤一些 oid。例如:我想返回值小于 1000 的 OID
[
{
"_id": {
"$oid": "607f24106f097b42ba7dea5e"
},
"SNMP_ONTOLOGIA": {
"oid": "1.3.6.1.4.1.6527.6.1.2.2.20.6.3.1.10",
"value": 833
},
"contextData": {
"deviceTemplate": null,
"device": null,
"clientConnection": null,
"clientSession": null,
"user": "administrator",
"timezoneId": "UTC",
"timestamp": "2021-04-20T18:57:20Z",
"timestampMillis": 1618945040731,
"source": "FLOWENGINE"
}
},
{
"_id": {
"$oid": "607f2f576f097b42ba7dea62"
},
"SNMP_ONTOLOGIA": {
"oid": "1.3.6.1.4.1.2011.5.100.1.1.30.12",
"value": 25505
},
"contextData": {
"deviceTemplate": null,
"device": null,
"clientConnection": null,
"clientSession": null,
"user": "administrator",
"timezoneId": "UTC",
"timestamp": "2021-04-20T19:45:27Z",
"timestampMillis": 1618947927982,
"source": "FLOWENGINE"
}
}
]
我已经尝试过 https://jsonpath.com/ 这些语法:
<块引用>$..SNMP_ONTOLOGIA[?(@.value < 1000)]
$..SNMP_ONTOLOGIA[?(@.value < 1000)].oid
我不明白为什么这本书的例子和上面的例子没有。
链接https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html#examples
语法
<块引用>$..book[?(@.price > 4)]
答案 0 :(得分:0)
我真的很感激有人可以向我解释一下它是如何工作的。但我是这样管理的:
> jp.query(SNMP, '$..[?(@.value > 10)]');
[
{ oid: '1.3.6.1.4.1.6527.6.1.2.2.20.6.3.1.10', value: 833 },
{ oid: '1.3.6.1.4.1.2011.5.100.1.1.30.12', value: 25505 }
]
>
>
> jp.query(SNMP, '$..[?(@.value < 1000)]');
[ { oid: '1.3.6.1.4.1.6527.6.1.2.2.20.6.3.1.10', value: 833 } ]
> jp.query(SNMP, '$..[?(@.value < 1000)].oid');
[ '1.3.6.1.4.1.6527.6.1.2.2.20.6.3.1.10' ]
ps: 使用 require('jsonpath') npm 包
ps2:对于最初所说的 OID
jp.query(SNMP, '$..[?(@.oid == \'1.3.6.1.4.1.6527.6.1.2.2.20.6.3.1.10\')].value');
[ 833 ]