JsonOutput.toJson、prettyPrint等方法,中文被转义
问题描述
使用了 JsonOutput 的 prettyPrint 方法或者 toJson 方法,返回的字符串中,中文被转义为 \u738b 的形式
解决方案
\u738b 为 Unicode 字符。解决方法是解析 Unicode 字符为中文字符。
package org.qadoc.groovy.util
import groovy.json.JsonOutput
import org.apache.commons.lang3.StringEscapeUtils
/**
* JSON工具类
* author:李云
* time:2018-05-08
*/
class JsonUtils{
/**
* 对象转JSON字符串(中文不转义)
* @param object 对象
* @return 未转义的JSON字符串
*/
def static String toJson(Object object){
//普通对象转JSON文本:如果文本中有中文,中文会转义为Unicode字符
//例如:groovy.json.JsonOutput.toJson("李云")
//OutPut: "\u674e\u4e91"
def jsontext = JsonOutput.toJson(object)
//处理JSON文本中的Unicode字符
return StringEscapeUtils.unescapeJava(jsontext)
}
}
标签: Groovy