我想将我的java数据类序列化为JSON。说实话,几天前我发布了a relevant question,但到目前为止我还没有得到答案。目前,所有答案都表明杰克逊的注释。但我不想直接参与课程,我认为将这项工作委托给观点更好。
尽管如此,我发现SpringMVC支持GroovyTemplate,我有一个愉快的经验来处理Groovy模板和构建器,所以我对它们有很好的理解。但我可以找到Groovy模板来只构建html文件。所有示例都以类似的行开头:
html {
head {
title( ... )
...
}
}
有没有办法在提供JSON的SpringMVC上下文中编写Groovy模板?例如,Grails JSON视图之类的东西称为gson文件(参见this)。
我感谢所有人的关注。
答案 0 :(得分:0)
Groovy本身具有很好的生成json的功能。
您的课程可以轻松转换为json:
import groovy.json.*
class SomeClass{
String name
int value
List someList = ['value1', 'value2', 'value3']
}
assert JsonOutput.toJson(new SomeClass(name:'myClass', value: 3)) ==
'{"value":3,"someList":["value1","value2","value3"],"name":"myClass"}'
创建自己的模板引擎也很容易。 例如:
def SOME_CLASS_TEMPLATE = {SomeClass someClass->
[
the_json:[
message: 'Message',
name: someClass.name,
first_list_value: someClass.someList?.getAt(0)
]
]
}
assert JsonOutput.toJson(SOME_CLASS_TEMPLATE(new SomeClass(name:'myClass', value: 3))) ==
'{"the_json":{"message":"Message","name":"myClass","first_list_value":"value1"}}'
格式化的json输出:
assert JsonOutput.prettyPrint(JsonOutput.toJson(SOME_CLASS_TEMPLATE(new SomeClass(name:'myClass', value: 3)))) ==
'''{
"the_json": {
"message": "Message",
"name": "myClass",
"first_list_value": "value1"
}
}'''
同时检查 groovy.json 包中的其他类( JsonGenerator , JsonBuilder ),它们可能更适合您的任务。