我想将域类与嵌套域对象绑定(bind)到 request.JSON 数据。它工作正常,除了嵌套域类中的 Date 类型的字段,它总是给出 null。这是 request.json
[..., cardInfo:[expiryDate:2016-07-21, ccv:3455, cardNumber:4111111111111111], ....]
我尝试使用多种方式绑定(bind)这些 json:
MyClass myClass=new MyClass(request.JSON)
和
myClass.properties=request.JSON
bindData(myClass,request.JSON)
bindData(myClass.cardInfo,request.JSON.cardInfo)
绑定(bind)expiryDate 没有任何效果。这是一个错误还是我做错了什么?
更新:
我正在使用 Grails 2.4.2 。我的配置文件中也包含这一行
grails.databinding.dateFormats = ['dd-MM-yyyy','MM-dd-yyyy','yyyy-MM-dd', 'yyyy-MM-dd HH:mm:ss.S']
最佳答案
您没有提供足够的信息来确定,但我希望活页夹未配置为了解您的日期格式。你可以尝试这样的事情:
class MyClass {
@org.grails.databinding.BindingFormat('yyyy-MM-dd')
Date expiryDate
}
您还可以在 Config.groovy 中将其配置为默认日期格式:
// grails-app/conf/Config.groovy
grails.databinding.dateFormats = ['yyyy-MM-dd', 'MMddyyyy', 'yyyy-MM-dd HH:mm:ss.S', "yyyy-MM-dd'T'hh:mm:ss'Z'"]
见 http://grails.org/doc/latest/guide/theWebLayer.html#dataBinding更多细节。
我希望这会有所帮助。
关于json - 日期字段的 Grails 数据绑定(bind)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26845939/