2016-09-08 12 views
0

失敗:Groovyの変換JSONは私がXMLにJSONに変換するコードを以下している

import grails.converters.JSON 
import grails.transaction.Transactional 
import org.json.JSONObject 
import org.json.XML 

@Transactional 
class JsonService { 

    def convertJsonToXml(String json) { 
     JSONObject o = JSON.parse(json) 
     return XML.toString(o) 
    } 

} 

このコードは、匿名のアレイとjsonsのを除いて、正常に動作します。たとえば :

[ 
    { 
    "cnt":1, 
    "name":"American", 
    "pk":7 
    }, 
    { 
    "cnt":2, 
    "name":"Celebrities", 
    "pk":3 
    }, 
    { 
    "cnt":1, 
    "name":"Female", 
    "pk":2 
    } 
] 

私はこの結果を得る:{ "空":偽}

がどのように私はこの問題を回避することができますか?

答えて

1

ライブラリを混在させています: 今、org.codehaus.groovy.grails.web.json.JSONElementオブジェクトを生成するgrails.converters.JSONを使用してJSON文字列を解析しています。

その後、あなただけのorg.json.JSONTokenerを経由して文字列を解析し、変数を作ることがorg.json.XML

を経由してXMLに変換できるようにorg.json.JSONObjectに、この結果に合うようにしようとしています"o"動的(JSONObjectまたはJSONArrayを保持):

import org.json.JSONObject 
import org.json.JSONTokener 
import org.json.XML 

def convertJsonToXml(String json) { 
    def o = new JSONTokener(json).nextValue() 
    return XML.toString(o) 
} 
関連する問題