Java RESTful请求的JSON解析异常
我的应用程序正在向外部源发出Java RESTful请求的JSON解析异常,java,json,resttemplate,Java,Json,Resttemplate,我的应用程序正在向外部源发出RESTful服务请求。外部源返回JSON数据。但是,我得到了一个例外: “com.fasterxml.jackson.databind.JsonMappingException:无效的UTF-8 开始字节0xa0。“ 我发出RESTful请求的Java代码如下: ` 尝试在标题中设置内容类型和字符集,例如“content-type”、“application/json;charset=UTF-8”是否可以发布更多问题的堆栈跟踪,是否有任何方法预处理外部输入以删除此有
RESTful
服务请求。外部源返回JSON
数据。但是,我得到了一个例外:
“com.fasterxml.jackson.databind.JsonMappingException:无效的UTF-8
开始字节0xa0。“
我发出RESTful请求的Java代码如下:
`
尝试在标题中设置内容类型和字符集,例如“content-type”、“application/json;charset=UTF-8”是否可以发布更多问题的堆栈跟踪,是否有任何方法预处理外部输入以删除此有问题的字符 0xa0不是空白,因此它不会被视为标准空间,这可能会导致问题。如果可以在使用前对数据进行预处理,只需将有问题的字符替换为空格()即可解决问题
string = string.replace('\u00A0',' ')
此外,请确保使用正确的类型/格式对数据进行编码
public void createHeaders(){
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> httpEntity = new HttpEntity<String>(httpHeaders);
this.httpEntity = httpEntity;
this.httpHeaders = httpHeaders;
}
public void setupMessageConverters(){
List<HttpMessageConverter<?>> messageConverterList = new ArrayList<>();
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
messageConverter.setObjectMapper(objectMapper);
messageConverterList.add(messageConverter);
this.messageConverterList = messageConverterList;
}
string = string.replace('\u00A0',' ')