我有如下的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