如何在siddhi中加载json multilevel?

问题描述 投票:0回答:2

我正在尝试加载具有多级值的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的值字段。

最后,将减去并打印这些值。

非常感谢你。

最良好的问候

siddhi
2个回答
1
投票

您可以使用自定义映射获取这些值。

@source(type=<type>, receiver.url=<your_url>, @map(type = 'json', 
     @attributes(parkingMax = '$.parkingMax.value', freeParking = '$.freeParking.value')))
define stream InputStream (parkingMax long, freeParking long);

1
投票

您可以使用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/

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.