我正在尝试加载具有多级值的JSON。例如:
{
"id": "parkingcity-02",
"type": "parking",
"parkingMax": {
"type": "Number",
"value": "100",
"metadata": {}
},
"descripcion": {
"type": "Text",
"value": "Parking number 2",
"metadata": {}
},
"freeParking": {
"type": "Number",
"value": "80",
"metadata": {}
}
}
我想获取parkingMax和freeParking的值字段。
最后,将减去并打印这些值。
非常感谢你。
最良好的问候
您可以使用自定义映射获取这些值。
@source(type=<type>, receiver.url=<your_url>, @map(type = 'json',
@attributes(parkingMax = '$.parkingMax.value', freeParking = '$.freeParking.value')))
define stream InputStream (parkingMax long, freeParking long);
您可以使用siddhi-execution-json扩展[1]来实现您的要求。请查找以下示例siddhi代码提取上述字段。
define stream InputStream(json string);
from IpStream
select json:getString(json,"$.parkingMax") as parkingMax, json:getString(json,"$.freeParking") as freeParking
insert into OutputStream;
请节点您需要为输入流提供上述JSON
[1] - https://wso2-extensions.github.io/siddhi-execution-json/api/latest/
谢谢