如何解析发送到Grails Server的JSON中的ObjectId(MongoDB)

时间:2014-03-02 01:53:32

标签: json angularjs mongodb grails

我在这里搜索过很多帖子,但我还是找不到答案。

问题: 我想解析这个JSON:

{
  "price": {
    "currency": {
      "class": "com.yintagoka.ad.Currency",
      "id": {
        "class": "org.bson.types.ObjectId",
        "inc": -612166639,
        "machine": -1775927134,
        "new": false,
        "time": 1393682821000,
        "timeSecond": 1393682821
      },
      "code": "USD",
      "longName": "United States Dollar",
      "name": "USD",
      "symbol": null
    },
    "amount": 100
  },
  "title": "title",
  "description": "desc"
}

成为我的Grails服务器中的对象

class House {
    ObjectId id
    String name
    String title
    Price price
    // ... many more
}

class Price {
    BigDecimal amount
    Currency currency
}

class Currency {
    ObjectId id
    String code
    String longName
    String name
    String symbol
}

Grails为我做了几乎所有重要的事情,但它无法生成ObjectId。所以我将使用对象货币,所有属性名称都填充了值,但id将为null。

我如何告诉Grails也可以自动渲染ObjectId。

注意:我不想在我的ID中使用String。

我还读了post我可以通过request.JSON手动设置它,但问题是我总是得到一张空地图。

def save(House house) {
    print('request = '+request.JSON)
    print('house = '+house)
    print('params = '+params)
}

out:

request = [:]
house = com.yintagoka.ad.House@217b1ead[id=<null>,title=title,description=desc,price=com.yintagoka.ad.Price@1a1b0107[amount=100,currency=com.yintagoka.ad.Currency@62e07ff4[id=<null>,name=USD,longName=United States Dollar,code=USD,symbol=<null>]]
params = [action:delete, controller:house]

0 个答案:

没有答案