2011-08-24 12 views
8

問題のJSONはRESTfulなサービスから読み込まれており、デバッグの目的で(.gspでも問題ありませんが)コンソールに出力したいと思います。 Groovyの1.3.7(2011年8月現在のもの)は使用していますGroovyの1.7.8私は現在、私は「grooviestで納得していない午前れ、このようにそれを読んでいますGrails 1.3.7でJSONをきれいに印刷できますか?

注意(JsonOutputは1.8で導入されていません)またはgrail-est 'の方法でそれを行うことができます - 多分私はコンバータを利用して、別の仕方でかわいい印刷することができますか?コードサンプルは高く評価されます。

def serviceURL = new URL(theURL) 
    def json = new JSONObject(serviceURL.text) 
    println json 

答えて

14

toString(int indentFactor)メソッドでJSONを印刷できます。例:

def json = new JSONObject() 
json.put('foo', 'bar') 
json.put('blat', 'greep') 
println json 
===>{"foo":"bar","blat","greep"} 
println json.toString(4) 
===>{ 
    "foo": "bar", 
    "blat": "greep" 
} 
+0

うわー、ありがとう、シンプル。 – Peter

5

あなたは(JSONのための最も一般的に使用されるライブラリです)grails.converters.JSONを使用することができます。

あなたconfig.groovyファイルでは、trueにprettyPrintを設定するための行を追加します。

grails.converters.default.pretty.print=true 

次に、あなたのコントローラで:あなたはGrailsのコントローラにいると、レンダリングすることを計画している場合

import grails.converters.* 

def serviceURL = new URL(theURL) 
def json = JSON.parse(serviceURL.text) 
println "JSON RESPONSE: ${json.toString()" 
0

別にConfig.groovyで、設定されたデフォルトのかわいいプリントから、JSONのtoString()メソッドは1を受け入れますbooleanパラメータ。これは結果をきれいに印刷するかどうかを制御します。

import grails.converters.* 
import my.data.* 

def accountJson = Account.get(1001) as JSON 
println(accountJson.toString(true)) 
println(accountJson.toString(false)) 

Grails 1.3.9でテスト済みです。

関連する問題