2017-11-01 1 views
1

入力JSONにJSON値のリストを結合する方法ミュール:1つの

{ 
    "digital-profiles": [{ 
      "Id": "INTID1", 
      "status": "ACTIVE", 
      "cId": "12" 
     }, 
     { 
      "dId": "INTID2", 
      "status": "barred", 
      "cId": "13" 
     }, 
     { 
      "Id": "INTID3", 
      "status": "ACTIVE", 
      "cId": "14" 
     } 
    ] 
} 

出力:

{ 
    "Results": { 
      "NewId": "INTID1:ACTIVE,INTID2:barred,INTID3:ACTIVE" 
     } 
} 

私は上記された入力を使用して、上記の出力JSONを達成しようとしています。これをデータウェア変換を使用して達成する方法。どんな助けもありがとう。

答えて

3

所望の出力を得るためにmapjoinByを使用することです。これは私のために働きます

%dw 1.0 
%output application/json 
--- 
Results : { 
    NewId : payload.digital-profiles map ($.Id ++ ':' ++ $.status) joinBy ',' 
} 

これは役立ちます。

-2

これは、あなたがそれを行うことができ、一方向(コードテストしたが、現時点では非常によく似た何かに取り組んでいない)

function ParseJSON(MyObject) 
{ 
// parse incoming var into a JSON object. 
var MyObjectParsed= JSON.parse(MyObject); 
var i = 0; 
var NewJSONstring = "{/"Results/": {/"NewId/":"; 

// for each profile 
for(;MyObjectParsed.digital-profiles[i];) 
{ 
    NewJSONstring = NewJSONstring+ MyObjectParsed.digital-profiles[i].Id; 
    NewJSONstring = NewJSONstring+ ':'; 
    NewJSONstring = NewJSONstring+ MyObjectParsed.digital-profiles[i].status; 
    NewJSONstring = NewJSONstring+ ','; 
    i++ 
} 

return NewJSONstring; 
関連する問題