如何在siddhi中加载json多级?

时间:2018-09-11 10:28:22

标签: 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": {}
     }

}

我想将value字段设置为parkingMax和freeParking。

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

非常感谢您。

最诚挚的问候

2 个答案:

答案 0 :(得分: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/

谢谢

答案 1 :(得分: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);