Groovy的 - 转换对象JSON字符串
我敢用Grails的转换器,在那里你可以将任何对象转换为JSON表示,就像这样(http://grails.org/Converters+Reference)Groovy的 - 转换对象JSON字符串
return foo as JSON
但在普通常规,我无法找到一个简单的方法来做到这一点(http://groovy-lang.org/json.html)
JSONObject.fromObject(this)
返回空字符串JSON ...
我缺少一个明显的Groovy转换器? 或者我应该去杰克逊或gson库?
你的意思是这样的:
import groovy.json.*
class Me {
String name
}
def o = new Me(name: 'tim')
println new JsonBuilder(o).toPrettyString()
这确实是加工。但是,疯狂的事情是,如果你指定“公共字符串名称”。如果您使用公共访问器,JsonBuilder似乎忽略它们... – Wavyx
@Wavyx是的,那么它不会将它变成'metaClass.properties',所以不会被构建器拾取: -/ –
好吧..其他难看的解决方案是 'def toJsonString(Boolean prettyPrint = false){ Map props = [:] def outObject = Publication.declaredFields.findAll {!it.synthetic && it.name!='props'} .collectEntries {v - > [(v.name):this [v.name]] } outObject Wavyx
您可以使用JsonBuilder了点。
示例代码:
import groovy.json.JsonBuilder
class Person {
String name
String address
}
def o = new Person(name: 'John Doe', address: 'Texas')
println new JsonBuilder(o).toPrettyString()
请考虑提供一个完整的答案,因为它比另一个站点的链接更有帮助。此链接不再有效。 – antonyh
我不能让其他的答案中的IntelliJ这样评价控制台内的工作...
groovy.json.JsonOutput.toJson(myObject)
这工作得很好,但不幸的是
groovy.json.JsonOutput.prettyString(myObject)
没有为我工作。
要得到它漂亮的印刷我不得不这样做......
groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(myObject))
本地的“常规性”不知道纯Java库(即在Java反射/ Java bean的工作库) –