Groovy - 将对象转换为JSON字符串

Wav*_*vyx 68 groovy json

我已经习惯了Grails转换器,你可以将任何对象转换为JSON表示,就像这样(http://grails.org/Converters+Reference)

return foo as JSON
Run Code Online (Sandbox Code Playgroud)

但在简单的groovy中,我找不到一个简单的方法(http://groovy-lang.org/json.html)

JSONObject.fromObject(this)
Run Code Online (Sandbox Code Playgroud)

返回空的json字符串...

我错过了一个明显的Groovy转换器吗?或者我应该去杰克逊或gson图书馆?

tim*_*tes 130

你的意思是:

import groovy.json.*

class Me {
    String name
}

def o = new Me( name: 'tim' )

println new JsonBuilder( o ).toPrettyString()
Run Code Online (Sandbox Code Playgroud)


chi*_*him 17

我无法在Intellij的评估控制台中得到其他答案,所以......

groovy.json.JsonOutput.toJson(myObject)
Run Code Online (Sandbox Code Playgroud)

这非常有效,但不幸的是

groovy.json.JsonOutput.prettyString(myObject)
Run Code Online (Sandbox Code Playgroud)

不适合我.

为了得到漂亮的印刷,我必须这样做......

groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(myObject))
Run Code Online (Sandbox Code Playgroud)


dha*_*dra 7

您可以为此使用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()
Run Code Online (Sandbox Code Playgroud)

  • 请考虑提供完整的答案,因为它比链接到其他站点更有用。此链接不再起作用。 (6认同)