【问题标题】:Serialization from POJO of JSON Array从 JSON 数组的 POJO 序列化
【发布时间】:2020-05-26 14:04:49
【问题描述】:

我使用序列化生成了以下有效负载

{
  "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);

【问题讨论】:

    标签: java arrays getter-setter


    【解决方案1】:

    添加一个新类:

    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);
    

    【讨论】:

      【解决方案2】:

      您不能写a3.setTransactions(a2);,因为setTransactions 接受Childs 的列表而不是单个Child

      你必须写这样的东西

      if (a3.getTransactions() == null) {
          a3.setTransactions(new ArrayList<Child>());
      }
      a3.getTransactions().add(a2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-09
        • 1970-01-01
        • 2019-07-25
        • 2015-04-29
        • 1970-01-01
        • 2023-03-23
        相关资源
        最近更新 更多