2
我構建了一個RESTful API,並且我創建的端點正在使用命令對象來驗證請求數據。我試圖找出將驗證錯誤呈現爲json的最佳方法。對於XML響應我跟着行動書在Grails的建議,並沒有...Grails - 將驗證錯誤呈現爲JSON
response.status = 403
render(contentType: "text/xml") {
errors {
eventSaleDataCommand.errors.fieldErrors.each { err ->
field(err.field)
message(g.message(error: err))
}
}
}
此渲染XML響應效果很好,所以我想知道什麼渲染JSON響應建議的方法是什麼?
我想有誤差如何顯示所以JSON響應我加了一些控制:
def results = eventSaleDataCommand.errors.fieldErrors.toList()
def errors = []
for (error in results) {
errors.add([
'type' : 'invalid_entry',
'field' : error.field,
'rejected_value': error.rejectedValue,
'message' : error.defaultMessage
])
}
render errors as JSON
問題這種方法是我使用的喬達時間插件,所以我得到以下情況例外,當我試圖呈現地圖爲JSON:
Class org.codehaus.groovy.grails.web.converters.marshaller.json.GenericJavaBeanMarshaller can not access a member of class org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone with modifiers "public".
任何人都知道解決的辦法?
你已經嘗試將contentType改爲'text/json',不是嗎? – injecteer 2014-09-19 15:54:53
是的。我得到一個異常:'java.lang.IllegalArgumentException:數組元素必須用「元素」方法調用來定義例如:element(value)' – user1866924 2014-09-19 16:05:23