从 JSON 数组的 POJO 序列化
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);
我如何添加生成如下所示的有效载荷,我的 getters/setters 应该如何
{
"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);
我使用序列化生成了以下负载
{
"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);
我如何添加生成如下所示的有效载荷,我的 getters/setters 应该如何
{
"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);