2016-07-25 3 views
1

Ich habe eine Datei mit UTF-8-Codierung.Wie verwendet man Groovy JsonOutput.toJson mit Daten, die mit UTF-8 kodiert sind?

Ich schreibe eine groovige Skript eine Datei mit einer JSON-Struktur zu laden, ändern und speichern Sie es:

def originPreviewFilePath = "./xxx.json" 

//target the file 
def originFile = new File(originPreviewFilePath) 

//load the UTF8 data file as a JSON structure 
def originPreview = new JsonSlurper().parse(originFile,'UTF-8') 

//Here is my own code to modify originPreview 

//Convert the structure to JSON Text 
def resultPreviewJson = JsonOutput.toJson(originPreview) 

//Beautify JSON Text (Indent) 
def finalFileData = JsonOutput.prettyPrint(resultPreviewJson) 

//save the JSONText 
new File(resultPreviewFilePath).write(finalFileData, 'UTF-8') 

Das Problem ist, dass JsonOutput.toJson UTF-8-Daten zu UNICODE umwandelt. Ich verstehe nicht, warum UTF-8 aber nicht JsonOutput.toJson verwenden kann?

Wie zu JsonOutput.toJson UTF-8 verwenden? Ich brauche die genaue inverse von

Antwort

0

Ich glaube, dass die Codierung auf die falsche Aussage beim Lesen selbst angewendet wird.

ändern unten Aussagen:

def originFile = new File(originPreviewFilePath) 
def originPreview = new JsonSlurper().parse(originFile,'UTF-8') 

An:

def originFile = new File(originPreviewFilePath).getText('UTF-8') 
def originPreview = new JsonSlurper().parseText(originFile) 
+1

Dies hat keine Auswirkung. Das Problem ist, dass 'JsonOutput.toJson' Unicode unabhängig von der Eingabe verwendet. –

+0

Es hat für mich funktioniert. Danke –

Verwandte Themen