Search code examples
siddhi

how can I load json multilevel in siddhi?


I am trying to load a JSON with multilevel values. For example:

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

}

I want to get the value field to parkingMax and freeParking.

Finally, the values will be subtracted and printed.

Thank you very much.

Best regard


Solution

  • You can get those values with a custom mapping.

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