我已经使用序列化生成了以下有效负载
{
"transactionIds" : 123456,
"test" : 3000,
"amount" : {
"currency" : "USD",
"value" : 10
}
}
下面是代码
Amount a1 = new Amount();
a1.setCurrency("USD");
a1.setValue(10);
Child a2 = new Child();
a2.setTransactionIds(123456);
a2.setTest(3000);
a2.setAmount(a1);
ObjectMapper mapper = new ObjectMapper();
String abc = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(a2);
如何添加以生成如下所示的有效负载,我的getter / setter应该如何
{
"transactions": [
{
"transactionIds": 123456,
"test": 3000,
"amount": {
"currency": "USD",
"value": 10
}
}
]
}
我尝试了以下内容
private List<Child> transactions;
public List<Child> getTransactions() {
return transactions;
}
public void setTransactions(List<Child> transactions) {
this.transactions = transactions;
}
但是我似乎无法正常工作
Parent a3 = new Parent();
a3.setTransactions(a2);
添加新班级:
public class TransactionWrapper{
private List<Child > transactions = new ArrayList<>();
//getter setter
}
Amount a1 = new Amount();
a1.setCurrency("USD");
a1.setValue(10);
Child a2 = new Child();
a2.setTransactionIds(123456);
a2.setTest(3000);
a2.setAmount(a1);
TransactionWrapper tw = new TransactionWrapper();
tw.getTransactions().add(a2);
ObjectMapper mapper = new ObjectMapper();
String abc = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(tw);
您不能写a3.setTransactions(a2);
,因为setTransactions
接受Child
的列表而不是单个Child
。
您必须写这样的东西
if (a3.getTransactions() == null) {
a3.setTransactions(new ArrayList<Child>());
}
a3.getTransactions().add(a2);