gpt4 book ai didi

grails - 如何在Grails中注册自定义json解串器/解析器?

转载 作者:行者123 更新时间:2023-12-02 15:28:11 26 4
gpt4 key购买 nike

我应该使用过滤器还是拦截器来满足要求,不是更简单的方法吗?

更新:
看起来我的旧代码工作正常,我无意间编辑了resources.groovy并使bean定义无效

resources.groovy
================

beans = {
dateConverter DateConverter
}

BootStrap.groovy
================

class BootStrap {
def grailsApplication

def init = { servletContext ->
def ctx = grailsApplication.mainContext
def dataBinder = ctx.getBean(org.grails.databinding.SimpleDataBinder)
dataBinder.conversionHelpers[Date] = [ctx.getBean('dateConverter')]
}
}

最佳答案

如果要全局更改它,可以执行以下操作:

    class Foo {
String name
}

并使用 Bootstrap.groovy(或您喜欢的任何位置):
    JSON.registerObjectMarshaller(Foo) {
[name:it.name()]
}

如果仅在特殊情况下需要它,那么(以我的经验),最简单的方法是创建 map 并将其转换为JSON
[name:'foo'] as JSON

更新资料
@BindUsing也适用于命令对象。
class FooController {
def foo (FooCmd bind) {
render (text: "${bind.foo}")
}
}

class FooCmd {
@BindUsing({ obj, src ->
"@BindUsing ${src['foo']}"
})
String foo
}

curl -i -H "Content-Type: application/json" -d '{"foo":"FOO!!!!"}' http://localhost:8080/Stackoverflow/Foo/foo

关于grails - 如何在Grails中注册自定义json解串器/解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464910/

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