java – com.fasterxml.jackson.databind.JsonMappingException:由
发布时间:2020-05-24 12:00:14 所属栏目:Java 来源:互联网
导读:我需要使用 java POJO类映射 JSON数组对象. 我写了这样的代码: // execute the client with get method InputStream inputStream = getMethod.getResponseBodyAsStream();BufferedReader bufferedReader = new BufferedReader(new Inp
|
我需要使用
java POJO类映射
JSON数组对象.
// execute the client with get method
InputStream inputStream = getMethod.getResponseBodyAsStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
ObjectMapper objectMapper = new ObjectMapper();
JsonFactory jsonFactory = new JsonFactory();
List<OwnerDetail> owners = new ArrayList<>();
JsonParser jsonParser = jsonFactory.createJsonParser(inputStream);
if (jsonParser.nextToken() != null && jsonParser.)
{ // end-of-input
owners = objectMapper.readValue(bufferedReader,TypeFactory.defaultInstance().constructCollectionType(List.class,OwnerDetail.class));
}
以上块给出了以下错误: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input at [Source: java.io.BufferedReader@5e66c5fc; line: 1,column: 1] at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164) at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3029) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2971) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2128) 任何帮助,将不胜感激.谢谢. 解决方法读取响应后,将消耗响应中的数据.如果您的代码是拦截器,您可以尝试再次创建响应并返回如下: Request request = chain.request();
Response originalResponse = chain.proceed(request);
final ResponseBody original = originalResponse.body();
// if(request.url().toString().equalsIgnoreCase(string)){
if (originalResponse.code() == HttpURLConnection.HTTP_OK) {
try {
String response = originalResponse.body().string();
JSONObject mainObject = new JSONObject(response);
// your mapping - manipulation code here.
originalResponse = originalResponse.newBuilder()
.header("Cache-Control","max-age=60")
.body(ResponseBody.create(original.contentType(),mainObject.toString().getBytes()))
.build();
} catch (JSONException | IOException e) {
e.printStackTrace();
}
}
return originalResponse;
这里再次创建响应并返回. 请告诉我任何更新. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Struts和servlet不能共存问题解决方法
- spring mvc利用ajax向controller传递对象的方法示例
- .net – LinkedList上的LINQ – 迭代LinkedListNode,而不是
- java – Eclipse生成的equals是否有任何特殊原因使用1231和
- spring定义和装配bean详解
- java – 用于版本化实体的ETag支持
- java生成图片验证码实例代码
- JAVA Apache POI Excel:为单元格区域添加边框
- 使用 NIO 实现的一个超级快的 FileServlet
- java – IllegalArgumentException readExceptionFromParce
