如何在post请求中从spring启动的json中检索值



嗨,我试图按照这篇文章消费json文件检索值,并做一些处理:https://www.baeldung.com/spring-boot-json

我遵循这个github的repo和学生文件夹:https://github.com/eugenp/tutorials/tree/master/spring-boot-modules/spring-boot-mvc-2/src/main/java/com/baeldung/students

StudentController.java的后映射中,我看到了这个:

@PostMapping("/")
public ResponseEntity<Student> create(@RequestBody Student student) throws URISyntaxException {
Student createdStudent = service.create(student);
URI uri = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(createdStudent.getId())
.toUri();
return ResponseEntity.created(uri)
.body(createdStudent);
}

他在@RequestBody中传递学生对象,如果我需要从json中提取一个值,比如这个post请求正在接收json,比如这样:

{'key':'val1',
'key2':'val2'
}

和在我的春季启动应用程序,我需要检索这个json对象,并得到做一些处理'val1',应该检索的东西像这个对象['key'],我不知道该怎么做?你能帮我一下吗?

我没有完全得到你想要做的,但如果我是正确的,你正试图手动检索请求体并在其上做一些业务。

public ResponseEntity<?> login(HttpServletRequest request) {
String body = request.getReader().lines().collect(Collectors.joining(System.lineSeperator()));
ObjectMapper mapper = new JsonMapper();
JsonNode json = mapper.readTree(body);
String email = json.get("email").asText();
String password = json.get("password").asText();
...
}

这是另一个项目的代码示例,希望对您有所帮助。

最新更新