java - 我希望 Spring Boot Java @Entity 模型类中的 String 成员变量之一在发送到客户端时显示为实际的 JSON 对象

标签 java json spring spring-boot jackson

我希望 Spring Boot Java @Entity 模型类中的 String 成员变量之一在发送到客户端时显示为实际的 JSON 对象,但我不确定这是如何实现的

我在 Spring Boot 中有这个 @Entity 类:

@Entity
@Data
public class A {

    @JsonProperty
    private String value
}

类 A 中的“值”应该是一个 JSON 对象,但我必须将其保留为字符串类型,否则它不会通过 JPA 保存到数据库中。

当 Controller 将此模型对象返回到客户端时,JSON 字符串中的“值”将显示为完整字符串而不是 JSON 结构。

出现了

{
  "value": "{\"another_value\":\"1234\"}"
}

而不是

{
  "value": {"another_value":"1234"}
}

有没有一些简单的方法来注释我的 A 类中的“值”来解决这个问题?

谢谢

最佳答案

您必须提供一个自定义 Getter,以便在反序列化时对其进行转换。我正在使用 google gson 进行反序列化。

@Entity
@Data
public class A {

    @JsonProperty
    private String value;

    @JsonGetter("value")
    public HashMap getValueAsJson(){
        return new Gson().fromJson(value, HashMap.class);
    }
}

关于java - 我希望 Spring Boot Java @Entity 模型类中的 String 成员变量之一在发送到客户端时显示为实际的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092813/

相关文章:

java - Android: Out of Memory Exception/decodeResource如何添加到VM Budget中?

java - 需要有关使用 Android Pattern 检测车牌号的帮助

java - 依赖项(Jar 文件)中的类未解析,导致编译错误

php - 修改从 PDO 和 PHP 生成的 json

java - Spring - Maven |贾斯珀依赖

java - SQL批量更新保证顺序?

java - 需要一个同时支持mysql和oracle的例子

JSON 文档索引失败

json - 如何在JSON文件中将一个JSON对象的引用设置为另一个

css - 如何在 JavaFx Spring 应用程序中包含 css 文件