为什么我从 Feign 获取时解析 JSON 出错?
Why I get error parsing JSON when get from Feign?
这是我的 JSON 我从我的 STUB 回来了:
{
"brokerAccounts": [
{
"id": "4598",
"customTags": [
"main-buy"
]
}
]
}
这是实体java class
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class InvestBrokerAccountsRs {
private List<InvestBrokerAccount> brokerAccounts;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class InvestBrokerAccount {
private String id;
private List<String> customTags;
}
}
在尝试使用 Feign 获取它之后 ResponseEntity<String>
我得到了这个:
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
据我所知,我的 json 有效。我有提供 getter 和 setter 的 @Data
注释。什么问题?
在我看来,这是负责任的 - ResponseEntity<String>
。您正在尝试将 json 中的 json object 格式反序列化为字符串,这是不可能的,因为 string 格式不同。
我想改为:
ResponseEntity<InvestBrokerAccountsRs>
应该可以解决您的问题。
这是我的 JSON 我从我的 STUB 回来了:
{
"brokerAccounts": [
{
"id": "4598",
"customTags": [
"main-buy"
]
}
]
}
这是实体java class
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class InvestBrokerAccountsRs {
private List<InvestBrokerAccount> brokerAccounts;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class InvestBrokerAccount {
private String id;
private List<String> customTags;
}
}
在尝试使用 Feign 获取它之后 ResponseEntity<String>
我得到了这个:
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
据我所知,我的 json 有效。我有提供 getter 和 setter 的 @Data
注释。什么问题?
在我看来,这是负责任的 - ResponseEntity<String>
。您正在尝试将 json 中的 json object 格式反序列化为字符串,这是不可能的,因为 string 格式不同。
我想改为:
ResponseEntity<InvestBrokerAccountsRs>
应该可以解决您的问题。