gpt4 book ai didi

json - 为什么在Json Grails中将Joda LocalTime渲染为String?

转载 作者:行者123 更新时间:2023-12-02 14:44:06 24 4
gpt4 key购买 nike

我在Grails中将LocalTime持续时间用于WorkDone域类字段。当使用render作为JSON时,此字段呈现为String而不是Object。我以为是因为此类中的toString()方法。

class WorkDone{
LocalTime duration
}

Json output = {"duration":"00:00:00"}

但是,如果我使用自定义类CustomDuration实现此字段,则它将在生成的JSON字符串中显示整个对象。
我还在此类中实现了toString()方法。
class WorkDone{
CustomDuration duration
}

json output = {"duration":{ durFieldInDurationClass:"00:00:00"}}

为什么我会看到这种行为?

这两种情况下我都有这张 map :
grails.converters.JSON.registerObjectMarshaller(WorkDone ) {
def returnMap = [:]
returnMap.put("duration", it.duration)
return returnMap
}

我的自定义持续时间类(class)
 class CustomDuration{
String durFieldInDurationClass
String toString(){
return durFieldInDurationClass
}
}

我在 Controller 中使用 render workdoneobject as JSON生成此输出。

最佳答案

class CustomDuration{
String durFieldInDurationClass
String toString(){
return durFieldInDurationClass
}
static {
grails.converters.JSON.registerObjectMarshaller(CustomDuration) {
return it.duration
}
}

关于json - 为什么在Json Grails中将Joda LocalTime渲染为String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383798/

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