java - 当我使用 lombok 时,如何向 Gson 序列化/反序列化中具有空字符串值的传入变量添加默认值?

标签 java json gson lombok

这是类(class)

package com.bablo.domain;

import com.google.gson.annotation.SerializedName;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;


@Getter @Setter
@ToString
public class PC {

   @SerializeName("name")
   private String name;

   @SerializeName("model")
    private String model;

   @SerializeName("processor")
    private String processor;
}

上面模型的类属性在json中可以有一个空字符串,如何在序列化和反序列化时给它默认值。

即在 requestbody json 中,模型键的值可以将空字符串作为值,如何读取它并将默认值放在类属性中空字符串的位置。

我应该禁用 lombok 并在我的类中添加自定义 getter 和 setter 方法来覆盖默认值吗?

或者Gson中有没有可用的注释来实现这一点?

或者lombok有一些解决方法来实现这一点?

最佳答案

这里可能需要使用 lombok Builder 注释。像这样的事情:

@Getter @Setter
@ToString
class PC {

    @SerializedName("name")
    @Builder.Default
    private String name = "name1";

    @SerializedName("model")
    @Builder.Default
    private String model = "model1";

    @SerializedName("processor")
    @Builder.Default
    private String processor = "processor1";
}

关于java - 当我使用 lombok 时,如何向 Gson 序列化/反序列化中具有空字符串值的传入变量添加默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55468345/

相关文章:

java - 默认情况下包含 Jackson JsonView 属性

javascript - 在 JavaScript 中使用正则表达式验证 JSON

java - 使用 Gson 从 JSOn 对象读取每一行

java - 根据 JSON 对象中的子值提取父名称。

java - 在奇数位置的列表元素之间添加空格

java - 我在 Hibernate 中使用 BigDecimal 类获取精确数值时遇到问题

java - Thymeleaf <input> 日期出现 :pattern 错误

Java - 将 WAV 文件读取为 float 组

mysql - 从 Node.js 将 Json 存储到 MySQL 数据库中

java - 使用 GSON 序列化对象