Grails 中如何解析 request body 中的 json 内容?

使用 Command 对象

在 action 参数中使用 command 对象,grails 会自动将 request 中的 json 串绑定到 command 对象的属性上。
在此之后,不能再调用 request.JSON 来读取 request body 内容了,否则报错。

需要注意的是,出现下面情况,grails 将不会解析请求 body 中的 json 串:

  • The request method is GET
  • The request method is DELETE
  • The content length is 0

Controller 自己解析 request body

方法一,使用 request.JSON 来读取 body 并解析为 json 对象。

def json = request.JSON
String phone = request.JSON["phone"]

方法二,使用输入流

String bodyText = request.inputStream.text
String bodyText = request.inputStream.getText("UTF-8")

注意:Command 方法和 request 方法是互斥的,只能使用一种。

参考

参考 Grails Doc - theWebLayer 中的Binding The Request Body To Command Objects

猜你喜欢

转载自blog.csdn.net/yangbo_hr/article/details/106156063