【问题标题】:Spring Boot @RestController cannot auto convert response to JSONSpring Boot @RestController 无法自动将响应转换为 JSON
【发布时间】:2019-06-17 15:28:32
【问题描述】:

我在使用 Spring Boot 应用程序时遇到了一个小麻烦。据我了解,Jackson 依赖项是使用 spring-boot-starter-web 自动配置的,并将对象序列化/反序列化为 json,用于注释为 @RestController 的类。

问题在于它的行为与预期不同,而是以纯/文本格式返回响应。

下面是我尝试执行的代码sn-p。

@GetMapping(value = "/user/",produces = "application/JSON")
public List<String> getUser(){

    List<String> newUsers = new ArrayList<String>();
    newUsers.add("User 1");
    newUsers.add("User 2");
    newUsers.add("User 3");
    return newUsers;
}

回应: 有人可以告诉我我到底在做什么错吗?

谢谢 J

【问题讨论】:

  • 这是一个有效的 JSON。你期望什么?
  • 响应有什么问题?它是一个 JSON 字符串列表。
  • 为什么你认为它不是json?

标签: java spring-boot spring-restcontroller


【解决方案1】:

是的,只是一个 JSON 数组也是一个有效的 JSON 。如果您想以对象形式输出 JSON,例如:

{
   "users":["User 1","User 2","User 3"]
}

你可以这样做:

@GetMapping(value = "/user/",produces = "application/JSON")
public Map<String,Object> getUser(){
    Map<String,Object> result = new HashMap<String,Object>();
    List<String> newUsers = new ArrayList<String>();
    newUsers.add("User 1");
    newUsers.add("User 2");
    newUsers.add("User 3");
    result.put("users" , newUsers);
    return result;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 2023-02-15
    • 2022-12-20
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    相关资源
    最近更新 更多