2011-08-24 18 views
8

Söz konusu JSON, RESTful bir hizmetten okunmaktadır ve ben hata ayıklama amacıyla yazdırmak istiyorum (konsola, .gsp da iyi olurdu). Groovy 1.3.7 (Ağustos 2011 itibariyle), Groovy 1.7.8'i kullanmaktadır (JsonOutput'un 1.8'de kullanıma girmesi gerekmemektedir)JSON, Grails 1.3.7'de oldukça güzel baskı yapabilir mi?

Not Şu anda böyle okumuştum, ki buna inanıyorum ki 'grooviest' ya da grail-est 'bunu yapmak için yolu - belki de farklı yapılır eğer dönüştürücüler ve güzel baskı yararlanmak olabilir? Kod örneği takdir edilecektir.

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

cevap

14

JSON'u toString(int indentFactor) yöntemiyle yazdırabilirsiniz. Örnek:

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

Vay, teşekkürler, basit. – Peter

5
Sen (JSON için en sık kullanılan kütüphane) grails.converters.JSON kullanabilirsiniz

: true prettyPrint ayarlamaya yönelik config.groovy dosyasında

satırı ekleyin:

grails.converters.default.pretty.print=true 

Ardından, denetleyicisi: bir Grails denetleyicisi konum ve işlemek planlıyorsanız

import grails.converters.* 

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

, JSON toString() metodu birini kabul eder boole parametresi. Oldukça sonuç yazdırıp yazdırmayacağını kontrol eder.

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

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

Tanelerde Test Edildi 1.3.9.

İlgili konular