Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RESTful请求的JSON解析异常_Java_Json_Resttemplate - Fatal编程技术网

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',' ')