java - 让 Jackson 解释单值 JSON
问题描述
我正在寻找解决此问题的方法,但我找不到任何东西。
我有来自以下的 JSON 响应HttpURLConnection
:
"OK"
乍一看,我认为这种响应是不正确的,因为我总是看到一些 key -> value 对 JSON。在我读到 JSON可以采用这种形式后,我了解到:
如果尝试验证, https://jsonlint.com/会给我一个有效的 JSON"OK"
响应,所以我认为它是正确的。现在我的问题是:如何在 Jackson 中用这个 JSON 响应映射 Java 类(称为 RestResponse)?
我试试这个但不工作给我JsonMappingException: no single-String constructor/factory method
:
final String json = "OK";
final ObjectMapper mapper = new ObjectMapper()
.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
final RestResponse response = mapper.readValue(json, RestResponse.class);
我什至不知道从哪里开始我的RestResponse
java 类,因为它没有可以用 Jackson 注释(如 @JsonProperty)标记的属性。
有谁知道杰克逊为什么不考虑这个响应案例? 或者只是有另一种方法?
感谢你们。
解决方案
您RestResponse
将需要一个采用单个字符串的构造函数。用 注释构造函数@JsonCreator
。
推荐阅读
- javascript - 在 document.write() 中调用 JavaScript 函数
- css - 使用 SASS 返回 Bootstrap 列宽
- java - 如果我们在重新散列发生时放置一个元素,HashMap 会发生什么?
- javascript - React Antd 无法从自定义日期选择器中获取价值
- java - 在 Java 中复制后,Arrays.sort 似乎正在更改我的复制数组。为什么会发生这种情况?
- css-animations - 关键帧和动画在 Next js 中根本不起作用
- django - 覆盖restauth密码重置电子邮件问题
- android - 如何打开SAF(Storage Access Framework)来选择存储?
- python - 使用 MySQL db 和 python 客户端执行 sql 查询时出错
- twitter - 如何使用 Tweepy 查找推文的语言?