【发布时间】:2020-06-27 10:44:20
【问题描述】:
我正在开发一个 rest api 应用程序,但我的代码有一些问题。我想返回一个扩展 avro 架构并将 HATEOAS 链接添加到响应的对象。我做了一些调查,结果发现我需要为对象自定义序列化程序。
有问题的部分代码是:
@JsonValue
public String serialize() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(this);
}
返回
无法编写 JSON:不是枚举。
当前对象是 avro 模式的扩展。我也试过了:
@JsonValue
public String serialize() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(getUserData());
}
返回:
无法写入 JSON:不是数组
其中用户数据是一个实际的 avro 对象。我不明白这些错误是什么意思。有人可以解释吗?另外,有没有更好的方法来返回一个结合其他参数的 avro 对象?
谢谢
编辑:
这里是完整的例子:
public class PaginatedUserData extends UserDataAvro {
@JsonValue
public String serialize() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
HashMap<String, String> map = new HashMap<>();
map.put("test", "5");
return mapper.writeValueAsString(map);
}
}
返回:
无法写入 JSON:不是数组
【问题讨论】:
标签: json spring-boot rest jackson jackson-databind