使用 DataWeave 修补数据

Patch data with DataWeave

我的目标是合并以下 JSON:

{
    lastname:"C.",
    firstname:"Sebastien"
}

{
    lastname:"Coucou",
    age:"N/A"
}

这是我想要的结果:

{
  "lastname": "Coucou",
  "firstname": "Sebastien",
  "age": "N/A"
}

如果键存在我想更新值,如果键不存在我想添加它。

这是我所做的:

%dw 2.0
output application/json
import * from dw::core::Objects

var data={
    lastname:"C.",
    firstname:"Sebastien"
}

var patch ={
    lastname:"Coucou",
    age:"N/A"
}

---
patch ++ (data -- keySet(patch))

作为输出:

{
  "lastname": "Coucou",
  "age": "N/A",
  "firstname": "Sebastien"
}

最简单的方法似乎是使用 Objects 模块中的 mergeWith() 函数:

%dw 2.0
import mergeWith from dw::core::Objects
output application/json

var data={
    lastname:"C.",
    firstname:"Sebastien"
}

var patch ={
    lastname:"Coucou",
    age:"N/A"
}
---
patch mergeWith data

输出:

{
  "age": "N/A",
  "lastname": "C.",
  "firstname": "Sebastien"
}