我正在尝试按照下面的方式对Pojo进行Pojo转换(每个Pojo都有一个对象列表) - 输出被转换但是正在跳过一个对象 - 下面的示例代码。
public class Pojo1 implements Serializable {
private List<Foo> fooList =new ArrayList<Foo>(1);
public Pojo1() {
}
public List<Foo> getFooList() {
return fooList ;
}
public void setFooList(List<Foo> fooList) {
this.fooList= fooList;
}
}
公共类Pojo2实现了Serializable {
private List<Bar> barList =new ArrayList<Bar>(1);
public Pojo2() {
}
public List<Bar> getBarList() {
return barList ;
}
public void setBarList(List<Bar> barList) {
this.barList= barList;
}
}
DataWeave转换如下 - 这个工作正常,但是List中只有一个对象被转换,我错过了第二个。
barList: [{
(
payload.fooList map {
item1:$.item1
}
)
} as :object {
class :"com.fooClass"
}]
} as :object {
class : "com.barClass"
}
提前致谢!
答案 0 :(得分:2)
尝试
{
barList: in1.fooList map {
item1: $.item1
} as :object {class : "com.fooClass"}
} as :object {class : "com.barClass"}
注意:as :object {class : "com.fooClass"}
应该是可选的,因为可以推断
问题似乎是您定义的array
只有one object
,并用以下结果填充该对象:
payload.fooList map {
item1:$.item1
}
这是一个对象数组:
[
{
item1: "value1"
},
{
item1: "value2"
}
]
用对象填充对象后,它最终会像:
{
item1: "value1",
item1: "value2",
item1: ...
}
因此,您正在使用具有大量重复字段(具有不同值)的对象填充数组,并且当写入该输出时(因为它是java),这些字段中的每一个仅获得一个值。