Spring 启动@RestController 无法自动将响应转换为 JSON
Spring Boot @RestController cannot auto convert response to JSON
我 运行 在 Spring 引导应用程序方面遇到了小麻烦。根据我的理解,Jackson 依赖项是使用 spring-boot-starter-web 和 serialize/deserialize 对象自动配置到 json 中的 类 注释为 @RestController.
问题是它的行为与预期不同,而是以 plain/text 格式返回响应。
下面是我要执行的代码片段。
@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,例如:
{
"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;
}
我 运行 在 Spring 引导应用程序方面遇到了小麻烦。根据我的理解,Jackson 依赖项是使用 spring-boot-starter-web 和 serialize/deserialize 对象自动配置到 json 中的 类 注释为 @RestController.
问题是它的行为与预期不同,而是以 plain/text 格式返回响应。
下面是我要执行的代码片段。
@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,例如:
{
"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;
}