我希望 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/