gpt4 book ai didi

json - Jackson 将字符串属性序列化和反序列化为 JSON

转载 作者:行者123 更新时间:2023-12-04 05:01:58 25 4
gpt4 key购买 nike

我有一个看起来像这样的模型( Play 2.1.1 java ebean)

@Entity
public class Link extends Model {
@Id
public Long id;

@Lob
public String points;
}

其中 points 是一个原始 json 字符串,其中包含数组中的 x、y 坐标。

我不想将它反序列化为一个 Points 数组,因为它只会用于 UI。因此,我想将其保存到数据库中的文本字段

我希望属性点在通过线路发送到前端时被序列化为 json 数组,并且我希望前端能够发送一个 json 数组并再次将其转换为字符串。

在 Controller 中:
// Serialize
List<Link> links = Link.findAll();
return ok(Json.toJson(links));

// Deserialize
Link link = Json.fromJson(request().body().asJson(), Link.class);

我该怎么做?

自定义序列化器,反序列化器?

@JsonRawValue?

还有其他注释吗?

最佳答案

答案比你想象的要简单得多。

@Lob
public String points;

public JsonNode getPoints() {
return Json.parse(StringUtils.isBlank(points) ? "[]" : points);
}

@JsonSetter
public void setPoints(JsonNode json) {
points = json.toString();
}

虽然我不太喜欢 getter 和 setter,但它确实有效。

如果有人有更好的更通用的解决方案,请随时发布另一个答案:)

关于json - Jackson 将字符串属性序列化和反序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16054366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com