2017-05-06 9 views
1

を使用して複数のイベントを送信:?WSO2 DAS - 私は次のように送信し、JSONを使用して、一度に複数のイベントを送信しようとしています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 
      } 
     } 
    } 
] 

は、あなたが上記のJSONの「powersavedの」属性を格納するための「isPowerSaverEnabled」と呼ばれるメタ属性を持つストリームに仮定します。 JSONパスでは$.sensorData.powerSaved、「マップ先」フィールドではmeta_isPowerSaverEnabledになります。

詳細については、ドキュメント[1]を参照してください。このマッピングのサンプルがWSO2CEPパックで利用でき、あなたにも1つを参照することができます[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

あなたの答えは、いくつかの構文エラーがあります(無用2 '}')。また、あなたの例からJSON配列を解析するには、正しく動作しません。 "$ .. sensorData.powerSaved"( 'sensorData'の前に追加ポイントがあることに注意してください)のようになります。とにかく、あなたの答えは手続きを理解する助けになったので、私は有効な答えのように受け入れます。ありがとう! – HolterMan