コントローラにJSONデータを送信しようとしていますが、コントローラがnullを表示しています。コントローラーにjsonデータを取得できないため、コントローラーはJSON要求をヌルとして表示します。
以下は私のコントローラのコードの内容です:
@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
URLマッピング試してみました:
:私はこれをしようとするとpost "/user/"(controller: "user",parseRequest:true, action:"save")
を
curl --data '{"owner":"new owner"}' --header "Content-Type: application/json" http://localhost:8080/user/
私のように出力を得る:
コントローラーは "text/htmlの" タイプを受け入れ、
[:]
null
json
私は残り-APIのプロファイルを使用してアプリケーションを作成しました:これは、コントローラから出力され
{"message":"Property [owner] of class [class com.sample.User] cannot be null","path":"/user/index","_links":{"self":{"href":"http://localhost:8080/user/index"}}
"POST"操作ではなくJSON であり、コンテンツタイプとしてJSONを使用して既存のオブジェクトを更新できます。
マイドメインクラスには三つのフィールド
String owner
String category
Boolean deleted = false
私はJSONリクエストを送信するために郵便配達を使用していますがあります。
{
"owner":"some user",
"category":"rule01"
}
私は間違っていますか?
grailsのバージョンは? –
私はgrailsを使っています。3.2.1 –
あなたの 'params'のダンプを投稿してください。 –