我有一个像以下一样的Json。
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}]}
但它也可能是:
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}],"city":["NewYork"],"student":"false"}
如何在Spring Boot Controller中收到它?
答案 0 :(得分:2)
您应该使用@RequestBody
注释。
@RequestMapping("/api/example")
public String example(@RequestBody String string) {
return string;
}
稍后,添加一些验证和业务逻辑。
您可以使用http://www.jsonschema2pojo.org/生成自定义类。生成后,您可以使用自定义类而不是String
。
如需进一步说明,我发现this tutorial很有意思。
答案 1 :(得分:0)
你可以像下面这样收到json,Spring Boot会将你的json转换成你定义的模型(例如" Comment" model model)。
@RequestMapping(value = "/create", method = RequestMethod.POST)
public ResultModel createComment(@RequestBody Comment comment) {...}
答案 2 :(得分:-2)
1)你需要改变你的休息控制器。示例
@Autowired
UserService userService;
@RequestMapping(value = "/user/", method = RequestMethod.GET)
public ResponseEntity<List<User>> listAllUsers() {
List<User> users = userService.findAllUsers();
if (users.isEmpty()) {
return new ResponseEntity(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<List<User>>(users, HttpStatus.OK);
}
2)定义你的pojo:例子
public class User {
String name;
String age;
public User(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
}
3)定义服务
@服务 公共类UserService {
public List<User> findAllUsers(){
// Those are mock data. I suggest to search for Spring-data for interaction with DB.
ArrayList<User> users = new ArrayList<>();
User user = new User("name", "5");
users.add(user);
return users;
}
}
您可以关注this教程。如果您只想将json消息发送到弹簧引导休息控制器,您可以使用像邮递员这样的休息客户端。