[英]Serialization from POJO of JSON Array
我使用序列化生成了以下有效负载
{
"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);
添加一个新的 class:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.