- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SpringBoot 应用程序。使用此配置文件:
@Configuration
public class ApplicationConfig {
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM));
restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
return restTemplate;
}
}
和这个类:
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
public class GeolocationAddress {
private Integer placeId;
private String licence;
private String osmType;
private Integer osmId;
private List<String> boundingbox = null;
private String lat;
private String lon;
private String displayName;
private String _class;
private String type;
private Double importance;
private Address address;
}
还有这个:
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
public class GeolocationAddressList {
private List<GeolocationAddress> addresses;
}
和这项服务:
public List<GeolocationAddress> searchFromAddress(String address) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
String url = "https://nominatim.openstreetmap.org/?addressdetails=1&q=bakery+in+berlin+wedding&format=json&limit=1";
GeolocationAddressList geolocationAddressList
= restTemplate.exchange(url, HttpMethod.GET, entity, GeolocationAddressList.class).getBody();
return geolocationAddressList.getAddresses();
}
但是我在运行服务时出现了这个错误:
org.springframework.web.client.RestClientException: Error while extracting response for type [class com.bonansa.domain.GeolocationAddressList] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `com.bonansa.domain.GeolocationAddressList` out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.bonansa.domain.GeolocationAddressList` out of START_ARRAY token
at [Source: (PushbackInputStream); line: 1, column: 1]
JSON
[{"place_id":80416066,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":4308033,"boundingbox":["40.4249225","40.4254227","-3.7133155","-3.7124476"],"lat":"40.42515745","lon":"-3.7128816738834214","display_name":"Plaza de Emilio Jiménez Millas, Argüelles, Moncloa-Aravaca, Madrid, Área metropolitana de Madrid y Corredor del Henares, Comunidad de Madrid, 28001, Comunidad de Madrid","class":"highway","type":"pedestrian","importance":0.42816097156854616,"address":{"road":"Plaza de Emilio Jiménez Millas","quarter":"Argüelles","city_district":"Moncloa-Aravaca","city":"Madrid","municipality":"Área metropolitana de Madrid y Corredor del Henares","state":"Comunidad de Madrid","postcode":"28001","country_code":"es","administrative":"Comunidad de Madrid"}}]
最佳答案
您面临的问题与您请求信息的方式有关。
您正在对服务执行 GET
请求,并尝试将响应映射为 GeolocationAddressList
类的实例。
如果服务实际上返回了一个对象,该对象的属性 addresses
对应于 GeolocationAddress
数组。
但该服务实际上返回了 GeolocationAddress
本身的数组,而 Jackson 对此表示不满 - 因为您表示您正在等待一个对象,但该服务实际上返回了一个数组。
请将您的代码更改为如下所示:
GeolocationAddress[] addresses
= restTemplate.exchange(url, HttpMethod.GET, entity, GeolocationAddress[].class).getBody();
我认为它应该有效。
关于java - 在 Spring restTemplate 中超出 START_ARRAY token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65166606/
我需要像这样反序列化 Json: { "arrayObj1":[ { "type":"t1", "value":[
我正在编写一个使用 robospice、retrofit 和 Jackson 2.4.X 的 Android 应用程序, 这是我试图反序列化从休息服务返回的 json。返回的“data”数组中的元素是
我在从我们从 EXTJS 存储发送的 JSON 文件中反序列化多个任务(数据)时遇到问题。在更新单个任务时它的工作正常。但是当我们更新多个任务时,它会显示 org.codehaus.jackson.m
我有两个对象,一个是 Dashboard,第二个是 Room 我有一个 json,看起来像这样 { "hotel_id":"1", "hotel_room":"200", "hotel_prope
我在尝试解析之前使用 Jackson 生成的一些 JSON 时收到此错误。我像这样生成 JSON String ret = ""; ret = mapper.writeValueAsString(me
我需要向网络服务发送一个发布请求,但它返回以下异常 java.io.IOException: Server returned HTTP response code: 500 for URL doma
谁能说我哪里做错了。我有这样的 json [{"name":"foo","slug":"foo2","locales":["foo3"],"hostname":"foo4","region_tag":
我是 Spring Boot 和 API 的新手,我正在开发一个项目,尽管我的 Spring Boot 应用程序与 MySQL 数据库连接,但我需要从公共(public) API 获取数据并将其存储到
我正在尝试使用 jackson api 解析 json,并包含以下详细信息。但我收到错误。请查找以下代码和堆栈跟踪详细信息。 JSON [{"id":1001,"cyPerReffe":1200,"d
我正在尝试将我的 json 请求解析为我的模型。我不知道,这段代码有什么问题。 json 的语法看起来是正确的,Java 模型上的注释也是如此。我不知道为什么我会收到如下错误: Caused by:
我有一个 SpringBoot 应用程序。使用此配置文件: @Configuration public class ApplicationConfig { @Bean public R
我有一个带有restTemplate调用的方法,如下所示: restTemplate.getForObject(apiUrl ,Someclass.class); Someclass.class: @
我正在尝试通过 jQuery AJAX 将对象数组发送到 Spring Controller 。这是 JavaScript 代码: var data = new Array(); $.
我在这个问题上遇到了同样的问题,很高兴看到这个问题已经有了解决方案。但我无法在我的代码中实现它。 ( Cannot deserialize instance of object out of STAR
我正在尝试为我的索引更新文档,并在通过 Postman 更新 API 脚本时收到以下错误 { "error": { "root_cause": [ {
直接开始... 我有一个返回字符串的方法(请参阅下面的示例字符串) - 本质上,我向 URL 发出 HTTP GET 请求,响应是下面的字符串... { "total": 30, "rows"
我有一个像这样的json: { "games": [ { "id": "mhhlhlmlezgwniokgawxloi7mi", "from": "42
我知道 stackoverflow 上有一些关于这个问题的问题。但我花了几个小时试图解决这个错误,但没有成功。 我使用 mysql 数据库来存储值。 我不断收到来自com.example.spring
JSON 片段如下: "text": {"paragraph": [ "For use in manufacturing only.",
我必须从 servlet 中收到的 JSON 字符串创建 Java 对象下面是 JSON [{"name":"name","value":"Shital"},{"name":"email","valu
我是一名优秀的程序员,十分优秀!