2017-01-06 12 views
1

は、Joltの変換に使用してJSONを変換するために仕様を記述しようとしています配列にいくつかの属性を移動するためにJoltの変換が

入力:

{ 
    "video": "10506207", 
    "id": "ef3ef821-92cb-441b-b218-c10e543398e3", 
    "session": "a7a55e610a813c36", 
    "events":[ 
     "event": "init", 
     "time-in": 180, 
     "time-out": 120, (= time-in - 60) 
    ] 
} 

は基本的に二つのことをしようと

{ 
    "video": "10506207", 
    "id": "ef3ef821-92cb-441b-b218-c10e543398e3", 
    "session": "a7a55e610a813c36", 
    "time-in": 180, 
    "event": "init" 
} 

出力: 1. 'time-in'属性と 'event'属性を 'events'配列に移動します 2. 'タイムアウト' =タイムインを追加します -

'default'操作では属性を追加できますが、数学的操作はできませんでした。助けてくれてありがとう!

+0

、条件に基づいて算出することが可能と「タイムアウト」であれば、(時間で> 0)の場合のような時間で - 他の60 0 – Sammy

+1

あなたは内にこれをやっている場合Apache NiFi(その他の最近の質問の1つはNiFiに関するものでした)、これは[Expression Language](https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html)で行うことができます)を['ReplaceText'](https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.ReplaceText/index.html)プロセッサで置き換えます。 – Andy

答えて

1

Joltではファンシーな「タイムアウト=時間-60」はサポートされていません。しかし、データを移動して、 "タイムアウト"計算を除いた所望の出力形式に一致させることができます。

スペック また [ { "operation": "shift", "spec": { "video": "video", "id": "id", "session": "session", "time-in": "events[0].time-in", "event": "events[0].event" } } ]

+0

ミロさん、ありがとうございました。その小さな数式表現の部分では、私はその作業がより良くなってからカスタムプロセッサを書くことになりました。そして、Nifiはカスタムコードを書くのをとても簡単にしました。 – Sammy

関連する問題