rest - 如何在grails中将对象作为JSON传递给POST或PUT请求

标签 rest grails gorm grails-domain-class grails-2.4

我在grails中使用 Restful 服务。我有2个类Person

import grails.rest.Resource
@Resource(formats=['json', 'xml'])

class Person {
   String name 
   Address address 

    static constraints = {
             }
           }

Address
  import grails.rest.Resource
  @Resource(formats=['json', 'xml'])
  class Address {

    String house
    static constraints = {
    }
  } 

在bootstrap中,我可以创建如下的新人员条目
new Person(name:"John" , address: new Address(house:"John Villa").save()).save();

但是问题是我想使用带有JSON数据的POST请求来做同样的事情。
我将UrlMappings.Groovy设置为
"/app/person"(resources: "person",  includes: ['index', 'show', 'save', 'update', 'delete', 'create', 'patch'])

"/app/address"(resources: "address",  includes: ['index', 'show', 'save', 'update', 'delete', 'create', 'patch'])

然后我尝试通过使用JSON数据向``/ app / person''发送POST请求来尝试使用POSTMAN rest客户端
{
   "name":"john" ,
   "address": "{'house' :'sample address' }"
}

但它给出错误422无法处理的实体。

如何使用JSON执行相同操作?我想使用POST和PUT方法进行插入和更新。

最佳答案

问题在于您发送的JSON。尽管它是有效的JSON,但它并不是您资源的正确表示形式。您的JSON应该是:

{
   "name":"john",
   "address": 
   {
      "house":"sample address"
   }
}

从上面可以看到,address属性实际上是一个嵌套对象,而不是发送的String

关于rest - 如何在grails中将对象作为JSON传递给POST或PUT请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090300/

相关文章:

rest - 在 REST 查询中指定数据结构

rest - 同一基于 Tomcat 的应用程序中的 Web 套接字和 Rest API

spring - 根据SAML响应在Grails中分配Spring安全角色

grails - 在未知属性上排序

grails - Gorm:按属性相关字段过滤条件

java - 将响应从 gRPC 服务流式传输到 REST 客户端

java - Spring Security 中针对 @PreAuthorize AccessDeniedException 的错误处理返回 500 而不是 401

grails - 检索Grails复合ID属性的列表?

grails - Grails 3.3.8:无法解析ControllerUnitTest

grails - 保存域实例时是否可以使用映射GORM 6 “defaultValue”