2017-05-30 2 views
0

JOLTの新機能で、JSONファイルを目的のスキーマに変換する必要があります。これは私の入力Transform JSON-JSON JOLT

[ 
    { 
     "PK": 12345, 
     "FULL_NAME":"Amit Prakash", 
     "BIRTHDATE":"1987-05-25", 
     "SEX":"M", 
     "EMAIL": "[email protected]", 
     "PHONE": "809386731", 
     "TS":"2015-11-19 14:36:34.0" 
    }, 
    { 
     "PK": 12654, 
     "FULL_NAME": "Rohit Dhand", 
     "BIRTHDATE":"1979-02-01", 
     "SEX":"M", 
     "EMAIL": "[email protected]", 
     "PHONE": "937013861", 
     "TS":"2015-11-20 11:03:02.6" 
    }, 
    ... 
] 

であり、これは私の所望の出力です:

{ 
    "records": [ 
     { 
      "attribs": [{ 
       "type": "customer", 
       "reference": "CUST" 
      }], 
      "name": "Amit Prakash", 
      "personal_email": "[email protected]", 
      "mobile": "809386731", 
      "id": 12345 
     }, 
     { 
      "attribs": [{ 
       "type": "customer", 
       "reference": "CUST" 
      }], 
      "name": "Rohit Dhand", 
      "personal_email": "[email protected]", 
      "mobile": "937013861", 
      "id": 12654 
     }, 
     ... 
    ] 
} 

はこれまでのところ、私はこの時点までに管理しています

[ 
    { 
    "operation": "remove", 
    "spec": { 
     "*": { 
     "BIRTHDATE": "", 
     "SEX": "", 
     "TS": "" 
     } 
    } 
    }, 
    { 
    "operation": "shift", 
    "spec": { 
     "*": "records" 
    } 
    } 
] 

しかし、私は行くことができませんここから出力のキーの名前を変更する方法がわかりません。

さらに、の代わりに操作を削除しますか? を除外するキーが少ない場合は操作を削除してください(ただし、JSONオブジェクト内に除外するキーはいくつかあります)。他の操作を行わないのに対し、

答えて

2

スペック

[ 
    { 
    "operation": "shift", 
    "spec": { 
     "*": { 
     "PK": "records[&1].id", 
     "PHONE": "records[&1].mobile", 
     "EMAIL": "records[&1].personal_email", 
     "FULL_NAME": "records[&1].name" 
     } 
    } 
    }, 
    { 
    "operation": "default", 
    "spec": { 
     "records[]": { 
     "*": { 
      "attribs[]": { 
      "0": { 
       "type": "customer", 
       "reference": "CUST" 
      } 
      } 
     } 
     } 
    } 
    } 
] 

シフトは、あなたのデータのコピーを作成します。したがって、物を取り除く1つの方法は、あなたのシフト仕様の中にコピーしないことです。

通常、削除は、シフトを「混乱させる」ものを取り除くために使用されます。