簡體   English   中英

Mule:如何將一組 json 值合並為一個

[英]Mule:How to combine a list of json values into one

輸入 JSON

{
     "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。 如何使用 dataweave 轉換實現這一點。 任何幫助,將不勝感激。

使用mapjoinBy獲得所需的輸出。 這對我有用

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

希望這可以幫助。

這是你可以做到的一種方式(代碼未經測試,但目前正在處理非常相似的事情)

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM