使用Java将JSON转为POJO并赋值,如何给List类型的Transaction字段赋值
解决方案
步骤1:补充Transaction类构造方法(可选,简化赋值操作)
保留序列化框架需要的无参构造,新增带参构造方便快速赋值:
public class Transaction{ @JsonProperty("Date") public String date; @JsonProperty("Amount") public String amount; // 无参构造必须保留,Jackson等JSON序列化框架反序列化时需要调用 public Transaction() {} // 带参构造,可直接传入字段值完成初始化 public Transaction(String date, String amount) { this.date = date; this.amount = amount; } }
步骤2:给List集合赋值并组装Summary对象
创建ArrayList实例存储多条交易记录,再绑定到Summary的transaction属性即可:
import java.util.ArrayList; import java.util.List; public class BuildObjectDemo { public static void main(String[] args) { // 初始化已完成赋值的AccountSummary对象 AccountSummary accountSummary = new AccountSummary(); // 初始化Transaction集合,存入JSON对应的两条交易记录 List<Transaction> transactionList = new ArrayList<>(); transactionList.add(new Transaction("2021-08-21", "20,000")); transactionList.add(new Transaction("2021-08-23", "5,000")); // 组装完整的Summary对象 Summary summary = new Summary(); summary.accountSummary = accountSummary; summary.transaction = transactionList; } }
若不想新增带参构造,也可以用无参构造创建对象后逐个给字段赋值,效果完全一致:
// 第一条交易记录赋值 Transaction transaction1 = new Transaction(); transaction1.date = "2021-08-21"; transaction1.amount = "20,000"; transactionList.add(transaction1); // 第二条交易记录赋值 Transaction transaction2 = new Transaction(); transaction2.date = "2021-08-23"; transaction2.amount = "5,000"; transactionList.add(transaction2);
内容的提问来源于stack exchange,提问作者Deepika
相关产品推荐
相关产品推荐

