我正在编写一个代码,我将JSON转换为XML。转换代码为:
BufferedReader in;
try {
InputStream is = new FileInputStream("/Users/appleBud/json");
jsonData = IOUtils.toString(is);
System.out.println("json data is: "+jsonData);
} catch (IOException e) {
e.printStackTrace();
}
XMLSerializer serializer = new XMLSerializer();
JSON json = JSONSerializer.toJSON(jsonData);
String xml = serializer.write(json);
System.out.println(xml);
我能够生成XML。但是,我的JSON包含无法以相应格式显示的HTML代码。例如,'<'成为& lt和'>'在我的XML中成为'& gt'。我尝试使用不同的解决方案,但没有解决我的问题。
我的JSON就像:
{
"title":"<p>This is demo </p>",
"index":"<li>Demo1</li><li>Demo2</li>",
"name": "KB649364539",
"creationDate": "Wed Aug 07 2013 00:00:52 GMT+0000"
}
并生成相应的XML:
<title type="string"><p>This is demo</p></title>
<index type="string"><li>Demo1</li><li>Demo2</li></index>
预期输出为:
<title><p>This is demo</p></title>
<index><li>Demo1</li><li>Demo2</li></index>
有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
只需替换HTML转义字符,它就可以正常工作:)
public static String filterDecode(String url){
url = url.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", ">")
.replaceAll("'", "\'")
.replaceAll(""", "\"")
.replaceAll(" ", " ")
.replaceAll("©", "@")
.replaceAll("®", "?");
return url;
}
答案 1 :(得分:0)
我建议您使用JSON.org,这样做很容易使用:
import org.json.XML;
import org.json.JSONException;
import org.json.JSONObject;
JSONObject jsonObj = new JSONObject(your string or file *.json);
System.out.println(XML.toString(jsonObj);