将JSON转换为XML的问题

时间:2014-01-13 07:01:40

标签: java xml json

我正在编写一个代码,我将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">&lt;p&gt;This is demo&lt;/p&gt;</title>
<index type="string">&lt;li&gt;Demo1&lt;/li&gt;&lt;li&gt;Demo2&lt;/li&gt;</index>

预期输出为:

<title><p>This is demo</p></title>
<index><li>Demo1</li><li>Demo2</li></index>

有什么方法可以实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

只需替换HTML转义字符,它就可以正常工作:)

public static String filterDecode(String url){

   url = url.replaceAll("&amp;", "&")
     .replaceAll("&lt;", "<")
     .replaceAll("&gt;", ">")
     .replaceAll("&apos;", "\'")
     .replaceAll("&quot;", "\"")
     .replaceAll("&nbsp;", " ")
     .replaceAll("&copy;", "@")
     .replaceAll("&reg;", "?");
   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);