Sri*_*m G 15 java json jackson deserialization resttemplate
在调用检索 json 响应并解析它时遇到问题。
[
{
"name": "john doe",
"age": "24",
"address": "{\"state\":\"LA\",\"country\":\"US\"}"
}
]
Run Code Online (Sandbox Code Playgroud)
楷模:
人.java
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {
private String name;
private String age;
private Address address;
}
Run Code Online (Sandbox Code Playgroud)
地址.java
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Address {
private String state;
private String country;
}
Run Code Online (Sandbox Code Playgroud)
读取此数据的代码,
ResponseEntity<List<Person>> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET,requestEntity,new ParameterizedTypeReference<List<Person>>() {});
Run Code Online (Sandbox Code Playgroud)
但是我遇到以下异常,
在提取类型和内容类型的响应时调用 ABS ServiceError 时出现 RestClientException
[java.util.List<com.bp.model.Person>][application/json;charset=UTF-8]; 嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException: JSON 解析错误: 无法构造实例com.bp.model.Address(尽管至少存在一个 Creator): 没有字符串参数构造函数/工厂方法来从字符串值反序列化 ('{"state": "LA","国家":"美国"}'); 嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造实例com.bp.model.Address(尽管至少存在一个 Creator):没有从字符串值反序列化的字符串参数构造函数/工厂方法 ('{"state":"IN ","brand":"anthem"}') at [来源: (PushbackInputStream); 行:1,列:325](通过引用链:java.util.ArrayList[0]->com.bp.model.Person["address"])
rph*_*rph 16
代码是正确的,但 JSON 有问题。地址是字符串而不是 JSON 对象。为了让它发挥作用,它需要类似于:
"address": {"state": "LA", "country": "US"}
Run Code Online (Sandbox Code Playgroud)
没有外部引号和转义字符。
| 归档时间: |
|
| 查看次数: |
84946 次 |
| 最近记录: |