【发布时间】:2020-12-15 10:55:12
【问题描述】:
我必须使用 Feign 库在 Spring-boot 中反序列化并序列化一个具有整数键和字符串值的简单 JSON。我知道,如果密钥在字符串中,这在 Spring-boot 中非常简单,具有自动序列化和反序列化。我的 JSON 看起来像:
"avatar": {
"48x48": "https://wfrjira.int.abc.com/secure/useravatar?ownerId=person&avatarId=1234",
"24x24": "https://wfrjira.int.abc.com/secure/useravatar?size=small&ownerId=person&avatarId=1234"
}
我的具有正确 getter 和 setter 类的 POJO bean 是:
class Avatar {
private String _48x48;
private String _24x24;
public Avatar() {
}
public Avatar(String _48x48, String _24x24) {
this._48x48 = _48x48;
this._24x24 = _24x24;
} Getters and Setter ...
我收到以下错误:
出现意外错误(类型=内部服务器错误,状态=500)。 提取类型 [class [Lcom.XXXXXX.JiraResourceData;] 和内容类型 [application/json;charset=UTF-8] 的响应时出错;嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法从 START_OBJECT 令牌中反序列化
[Lcom.XXXXXX.JiraResourceData;的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 [Source: (PushbackInputStream) 的 START_OBJECT 令牌中反序列化[Lcom.XXXXXX.JiraResourceData;的实例;行:1,列:1] feign.codec.DecodeException:提取类型 [class [Lcom.XXXXXX.JiraResourceData;] 和内容类型 [application/json;charset=UTF-8] 的响应时出错;嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法从 START_OBJECT 令牌中反序列化[Lcom.XXXXXX.JiraResourceData;的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize of[Lcom.XXXXXX.JiraResourceData;out of START_OBJECT token 在 [来源:(PushbackInputStream);行:1,列:1]
我知道我需要在 Avatar 类中声明变量,其名称与 JSON 的键匹配,但不能以数字开头声明字符串。有没有其他方法可以在 Spring-boot 中解决这个问题?任何帮助将不胜感激。
【问题讨论】:
-
你可以自己写反序列化器。
标签: java spring-boot fasterxml