gpt4 book ai didi

rest - Grails - 将验证错误呈现为 JSON

转载 作者:行者123 更新时间:2023-12-02 13:51:33 26 4
gpt4 key购买 nike

我正在构建一个 RESTful API,我正在创建的端点使用命令对象来验证请求数据。我试图找出将验证错误呈现为 json 的最佳方法。对于 xml 响应,我遵循了 Grails in Action 一书中的建议并做了...

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

这种方法的问题是我使用的是 Joda 时间插件,所以当我尝试将 map 呈现为 JSON 时出现以下异常:

类 org.codehaus.groovy.grails.web.converters.marshaller.json.GenericJavaBeanMarshaller 无法使用修饰符“public”访问类 org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone 的成员。

有人知道解决这个问题的方法吗?

最佳答案

怎么样?

render eventSaleDataCommand.errors.fieldErrors as JSON

关于rest - Grails - 将验证错误呈现为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com