如何在 siddhi 中加载 json 多级?

how can I load json multilevel in siddhi?

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

谢谢

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

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