在Mule中合并JSON

时间:2017-01-31 20:47:40

标签: json mule dataweave

我有一个JSON数组,里面有两个元素。我想将它们合并到一个json中。我怎么能在骡子那样做?

原始有效负载:

[{
    "Response1": {
        "lines": [{
            "lineIdentifier": 9,
            "result1": null
        }]
    }
}, {
    "Response2": {
        "lines": [{
            "lineIdentifier": 10,
            "result2": ".0225"
        }]
    }
}]

预期有效负载:

{
    "Response1": {
        "lines": [{
            "lineIdentifier": 9,
            "result1": null
        }]
    },
    "Response2": {
        "lines": [{
            "lineIdentifier": 10,
            "result2": ".0225"
        }]
    }
} 

5 个答案:

答案 0 :(得分:2)

可以使用dataweave完成,这是实现它的逻辑。

[[ inf   1.   3.   2.   1.]
 [ inf  inf   2.   3.   2.]
 [ inf  inf  inf   5.   4.]
 [ inf  inf  inf  inf   1.]
 [ inf  inf  inf  inf  inf]]

答案 1 :(得分:1)

使用java.net.HttpURLConnection运算符的最简单方法,这样您就不必担心对象的数量。请尝试以下代码

java.net.HttpURLConnection

HTH

答案 2 :(得分:1)

很抱歉,但我相信你正在走向错误的目标。 你提供了一个简单的例子,误导了简单的答案。

让我在你找我的时候解释你的问题:

我们有数组[a,b,c,...x,y,z]

我们需要将它合并到一个对象{a1:a, b2:b, c3:c,... z26:z }

您只提供了2个项目,但这就是您的想法。如果您真的只想要这些特定项目,那么请使用任何其他答案。但是,如果我是对的并且你一般都想要它,那么即使它可以通过多种方式完成,也可以考虑使用这个解决方案:

  • 代码将被"编码"对于像a1,b2,x26
  • 这样的实际键
  • 模块结构将是"硬连线"到键和数据
  • 整个解决方案将是"硬打印"对于一个特定的数据集

因此,一般来说,当它几乎不依赖于您的数据时,这不是一个好的解决方案。

答案 3 :(得分:0)

只能使用dataweave

完成
%dw 1.0
%output application/json
---
{
    "Response1" : {
        (payload.Response1.lines map ((item, indexOfItem) -> {
            "lines": item
        })
    )
    },
    "Response2" : {
        (payload.Response2.lines map ((item, indexOfItem) -> {
            "lines": item
        })
    )
    }
}

答案 4 :(得分:0)

var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];

var arr3 = arr1.concat(arr2);