我有如下的Json。如何在弹簧启动时接收json参数
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}]}
,但它也可能是:
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}],"city":["NewYork"],"student":"false"}
我怎样才能得到它在春季启动控制器?
我有如下的Json。如何在弹簧启动时接收json参数
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}]}
,但它也可能是:
{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}],"city":["NewYork"],"student":"false"}
我怎样才能得到它在春季启动控制器?
您应该使用@RequestBody
注释。
@RequestMapping("/api/example")
public String example(@RequestBody String string) {
return string;
}
稍后,添加一些验证和业务逻辑。
您可以使用http://www.jsonschema2pojo.org/生成自定义类。一旦生成,您可以期待您的自定义类而不是String
。
有关更多说明,我觉得this tutorial有趣。
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)定义服务
@Service 公共类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消息给一个spring启动休息控制器,你可以使用一个像postman这样的休息客户端。
尽管此链接可能回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/16958352) –
您可以像下面那样接收json,Spring Boot会将您的json转换为您定义的模型(例如下面的“Comment”模型)。
@RequestMapping(value = "/create", method = RequestMethod.POST)
public ResultModel createComment(@RequestBody Comment comment) {...}
我问过后,我发现这是一个愚蠢的问题。谢谢你仍然回答这个问题。并感谢每一次点击“投票”家伙,这让我意识到这是一个糟糕的问题。 –
英语不是我的母语。我的表达能力有限。 –
@ NBsaw-这个问题并没有显示你所做的努力。在问这里之前,我建议阅读[问]和[mcve] - 他们帮助提出很好的问题。 – xenteros