【发布时间】:2016-10-22 10:57:24
【问题描述】:
我正在尝试将 JSON 数据发送到控制器,但控制器将其打印为 null。
以下是我的控制器代码的内容:
@Transactional
def save(User user) {
println "${request.JSON}"
println "${request.JSON.owner}"
println request.format
user = new User(request.JSON)
if (user == null) {
transactionStatus.setRollbackOnly()
render status: NOT_FOUND
return
}
if (user.hasErrors()) {
transactionStatus.setRollbackOnly()
respond user.errors, view:'create'
return
}
user.save flush:true
respond user, [status: CREATED, view:"show"]
}
我已经尝试了此链接Grails send request as JSON and parse it in controller提供的所有内容
网址映射:
post "/user/"(controller: "user",parseRequest:true, action:"save")
当我尝试这个时:
curl --data '{"owner":"new owner"}' --header "Content-Type: application/json" http://localhost:8080/user/
我得到的输出为:
{"message":"Property [owner] of class [class com.sample.User] cannot be null","path":"/user/index","_links":{"self":{"href":"http://localhost:8080/user/index"}}
这是控制器的输出:
[:]
null
json
我使用 rest-api 配置文件创建了应用程序,
控制器接受“text/html”类型进行“POST”操作,但不接受 JSON 我可以使用 JSON 作为内容类型更新现有对象。
我的域类有三个字段
String owner
String category
Boolean deleted = false
我正在使用邮递员发送 JSON 请求。
{
"owner":"some user",
"category":"rule01"
}
我做错了什么?
【问题讨论】:
-
哪个 grails 版本?
-
我正在使用 grails 3.2.1
-
发布您的
params的转储。
标签: json rest grails controller