Как я могу загрузить многоуровневую JSON в сиддхи? - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь загрузить 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.

Наконец, значения будут вычтены и напечатаны.

Большое спасибо.

С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете получить эти значения с помощью пользовательского сопоставления.

@source(type=<type>, receiver.url=<your_url>, @map(type = 'json', 
     @attributes(parkingMax = '$.parkingMax.value', freeParking = '$.freeParking.value')))
define stream InputStream (parkingMax long, freeParking long);
0 голосов
/ 11 сентября 2018

Вы можете использовать расширение siddhi-execute-json [1] и выполнить ваше требование. Пожалуйста, найдите приведенные ниже примеры кодов сиддхи, извлеките вышеупомянутое поле.

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-execute-json / api / latest /

Спасибо

...