如何使用 builder() 方法使用 lombok+gson 生成 json?

How to generate json by using lombok+gson using builder() method?

我有一个这样的json,如何使用lombok表达式+gson库生成它?它混合了数组和列表。有现成的工具吗?

{
  "transactions": [
    {
      "transactionIds": 123456,
      "test": 3000,
      "amount": {
        "currency": "USD",
        "value": 10
      }
    }
  ]
}

像往常一样定义值,而不是生成 getter/setter,您将添加 @Data 属性、下面的完整代码以及依赖项

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;

public class Stack32 {

public static @Data class Amount {

    private String currency;
    private int value;

}

public static @Data class Child {

    private int transactionIds;
    private int test;
    private Amount amount;
}

public static @Data class Parent {

    private List<Child> transactions = new ArrayList<Child>();

}

public static void main(String[] args) throws JsonProcessingException {

    Amount a1 = new Amount();
    a1.setCurrency("USD");
    a1.setValue(10);

    Child a2 = new Child();
    a2.setTransactionIds(123456);
    a2.setTest(3000);
    a2.setAmount(a1);

    Parent a3 = new Parent();
    a3.getTransactions().add(a2);

    ObjectMapper mapper = new ObjectMapper();

    String payload = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(a3);

    System.out.println(payload);

}
}

依赖关系:

<dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>