2017-05-06 77 views
1
多个事件

我想一次发送多个事件,使用JSON,发送如下:WSO2 DAS - 发送使用JSON

{ 
    "event": { 
     "metaData": { 
      "meta_timestamp": 4.504343 
     }, 
     "payloadData": { 
      "value": 20.44345 
     } 
    }, 
    "event": { 
     "metaData": { 
      "meta_timestamp": 3.57724 
     }, 
     "payloadData": { 
      "value": 9.30211 
     } 
    }, 
    "event": { 
     "metaData": { 
      "meta_timestamp": 8.94134 
     }, 
     "payloadData": { 
      "value": 35.41315 
     } 
    } 
} 

我使用了正确的JSON格式?

目前,该事件接收器已准备好接收这样的事情:

{ 
    "event": { 
     "metaData": { 
      "meta_timestamp": 4.504343 
     }, 
     "payloadData": { 
      "value": 20.44345 
     } 
    } 
} 

我一直在阅读文档,一些有关“JSON输入映射”,但我不知道如何使用它(see the image )。

任何想法?

回答

1

您为此目的的JSON输入映射。如果输入JSON是一个数组,则每个元素都将视为一个单独的事件。考虑下面的自定义JSON文件。

[ 
    { 
     "sensorData": { 

       "timestamp": 19900813115534, 
       "powerSaved": false, 
       "id": 501, 
       "name": temperature, 
       "long": 90.34344, 
       "lat": 20.44345, 
       "humidity": 2.3, 
       "temp": 20.44345 
      } 
     } 
    }, 
    { 
     "sensorData": { 
       "timestamp": 19900813115534, 
       "powerSaved": false, 
       "id": 502, 
       "name": temperature, 
       "long": 90.34344, 
       "lat": 20.44345, 
       "humidity": 2.3, 
       "temp": 20.44345 
      } 
     } 
    } 
] 

假设你有一个名为“isPowerSaverEnabled”来存储上述JSON的“的powersaved”属性的元属性的流。然后在JSON路径中应该是$.sensorData.powerSaved,并且在“映射到”字段中应该是meta_isPowerSaverEnabled

欲了解更多信息,请参阅文档[1]。在该映射的样品可与WSO2CEP包,你可以参考一个以及[2]

[1] https://docs.wso2.com/display/DAS310/Input+Mapping+Types#InputMappingTypes-JSONinputmappingJSONInputMapping

[2] https://docs.wso2.com/display/CEP410/Sample+0002+-+Receiving+Custom+JSON+Events+via+HTTP+Transport

+0

你的回答有一些语法错误(二没用'}')。另外,为了解析你的例子中的json数组,它不能正常工作,它应该是这样的:“$ .. sensorData.powerSaved”(注意'sensorData'之前的附加点)。无论如何,你的回答帮助我理解了程序,所以我会接受一个有效的答案。谢谢! – HolterMan