【发布时间】:2016-10-23 15:52:33
【问题描述】:
我正在尝试使用 RestTemplate 使用 REST 服务。我在反序列化 JSON 响应时遇到问题。我正在使用自定义解串器,我的 JSON 有 3 个节点,但看起来只有一个节点到达解串器。以下是更多详细信息。
以下是响应 JSON:
{
"Hello": {
"Hi": "Name1",
"Call": "PhoneNumber1"
},
"Hello": {
"Hi": "Name2",
"Call": "PhoneNumber2"
},
"Hello": {
"Hi": "Name3",
"Call": "PhoneNumber3"
}
}
我正在使用 @JsonDeserializer 在属性 Hello 的响应类上使用自定义反序列化器。
当我执行如下 readTree 时:
JsonNode node = jp.getCodec().readTree(jp);
它到达了反序列化方法,看起来它只有一个节点而不是下面的 3 个节点。有时它具有第一个节点,有时具有最后一个节点。这里可能出了什么问题?
提前感谢您查看此问题并提供帮助!
回答: 正如其他人所提到的,这个 JSON 是无效的,因此杰克逊无法反序列化它。我必须将响应作为字符串获取,然后手动反序列化。
【问题讨论】:
标签: jackson json-deserialization