转换为 Java 数组时 Java Spring JSON 解析错误

克里斯

我一直在尝试通过 REST 服务发送 Java 对象列表,但是每当我尝试将其转换回 Java 数组时,我都会收到一个 JSON 解析错误:

2018-06-10 10:50:08.044  WARN 13680 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : 
   Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: 
   JSON parse error: Can not deserialize instance of com.master.entity.Greeting[] out 
   of START_OBJECT token; nested exception is 
   com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize 
   instance of com.master.entity.Greeting[] out of START_OBJECT token
   at [Source: java.io.PushbackInputStream@1e32b2a; line: 1, column: 1]

这是问候类:

public class Greeting {

private final long id;
private final String content;

public Greeting() {
    id = 0;
    content = "something";
}

public Greeting(long id, String content) {
    this.id = id;
    this.content = content;
}

public long getId() {
    return id;
}

public String getContent() {
    return content;
}
}

REST响应方法:

@RequestMapping("/getlist")
public List<Greeting> getList(Model model) {
    List<Greeting> greetings = new ArrayList<>();
    greetings.add(new Greeting(1, "Something"));
    greetings.add(new Greeting(2, "Something"));
    greetings.add(new Greeting(3, "Something"));
    greetings.add(new Greeting(4, "Something"));
    return greetings;
}

我的请求方法:

public void restGet() {
    String url = "http://192.168.0.11:8080/greeting";
    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

    ResponseEntity<Greeting[]> responseEntity = restTemplate.getForEntity(url, Greeting[].class);
    Greeting[] greeting = responseEntity.getBody();
    for (int i = 0; i < greeting.length; i++) {
        System.out.println("\n id: " + greeting[i].getId());
    }
}

这是 JSON 字符串:

[{"id":1,"content":"Something"},{"id":2,"content":"Something"},{"id":3,"content":"Something"},{"id":4,"content":"Something"}]

任何帮助将非常感激。谢谢!

克里斯

我按照 raiyan 的建议将 URL 更改为正确的 URL,现在可以正常工作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中从XML转换为JSON时

在 Spring MVC 中使用 Gson 将嵌套的 Json 数组转换为 Java 数组

如何在Spring Boot上将具有数组元素的JSON转换为Java对象

将java.sql.Date转换为java.time.LocalDate时出现Java Spring Boot Jpa错误

收到此错误org.json.JSONException:类型为java.lang.String的0值无法在解析时转换为JSONObject

将数组的JSON数组转换为特定类的Java列表

将数组的JSON数组转换为对象映射(Java)

将Json数组转换为Java脚本数组

将对象元素转换为数组 int[] java spring

在Java中将(解析)URL参数转换为JSON

无法解析的日期:“ 20180 ......” Json日期转换为Java

在Java Springboot中将CSV转换为JSON数组

Java JSONObject不会将数组转换为Json吗?

将Json String数组转换为Java String列表

将json数组转换为Java列表对象

Java-将数组转换为json对象

将JSON数组转换为Java类对象列表

在Java中将数组转换为Set时发生编译错误

解析 Json 数组 java

Java API-List <int []>转换为JSON错误

JSON转换为CSV错误-java.lang.NullPointerException

获取错误将json转换为java对象

转换为jSON时忽略Java bean字段

将Excel转换为JSON数组时无法解析日期

解析数据org.json.JSONException时出错:java.lang.String类型的值<br不能转换为JSONArray

XSD转换为Java时已定义的错误

将 Java 转换为 Kotlin 代码时的错误

将Pyobject转换为Java数组时发生typeerror

Spring - 将 pojo 转换为 JSON 时出现问题(未找到转换器错误)