首页 > 解决方案 > 让 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);

我什至不知道从哪里开始我的RestResponsejava 类,因为它没有可以用 Jackson 注释(如 @JsonProperty)标记的属性。

有谁知道杰克逊为什么不考虑这个响应案例? 或者只是有另一种方法?

感谢你们。

标签: javajsonjackson

解决方案


RestResponse将需要一个采用单个字符串的构造函数。用 注释构造函数@JsonCreator


推荐阅读