简单的json转换为xml

时间:2014-06-05 12:39:40

标签: xml json

任何人都可以共享代码将json转换为xml这是通过请求发出的json

{'sector':'Europe','organization':'Bazz Market Unit UK','companyCode':'UK1_2020','approvalManager':'03000069','managementLevel1':'X11','approvalLimit':'500000','access Category':'FTeam','currency':'USD','comments':'Need this access so I can do my job properly'}

我需要json到xml以及反之亦然。任何人都可以帮助我,我更喜欢不需要jar导入的代码。

提前致谢

3 个答案:

答案 0 :(得分:0)

如果您使用的是Java SE并且无法使用外部JAR,您的JSON总是很简单,您可以解析它。这是一个为您的示例工作的简短程序(但如果您有更复杂的JSON字符串以及更多嵌套级别和数组,则必须对其进行调整):

public class SimpleJsonToXml {
    public static void main(String[] args) {
        String json = "{'sector':'Europe','organization':'Bazz Market Unit UK','companyCode':'UK1_2020','approvalManager':'03000069','managementLevel1':'X11','approvalLimit':'500000','access Category':'FTeam','currency':'USD','comments':'Need this access, so I can do my job properly'}";
        String jsonObject = json.replaceAll("\\{(.*)\\}", "$1");
        String[] childElements = jsonObject.split("(,)(?=(?:[^\']|\'[^\']*\')*$)");

        System.out.println("<root>");
        for (String item : childElements) {
            System.out.println(makeTag(item));
        }
        System.out.println("</root>");
    }

    public static String makeTag(String jsonProperty) {
        String[] element = jsonProperty.split("\\:");
        String tagName = element[0].replaceAll("[' ]", "");
        String tagValue = element[1].replace("'", "");
        return "    <"+tagName+">"+tagValue+"</"+tagName+">";
    }
}

它将打印:

<root>
    <sector>Europe</sector>
    <organization>Bazz Market Unit UK</organization>
    <companyCode>UK1_2020</companyCode>
    <approvalManager>03000069</approvalManager>
    <managementLevel1>X11</managementLevel1>
    <approvalLimit>500000</approvalLimit>
    <accessCategory>FTeam</accessCategory>
    <currency>USD</currency>
    <comments>Need this access, so I can do my job properly</comments>
</root>

要将XML转换回JSON,您可以使用本机Java XML工具和解析器(例如org.w3c.domorg.xml.sax),并且不需要任何外部Jars。

如果您至少使用Java EE 7,则可以使用javax.json包中的解析器。

答案 1 :(得分:0)

我试过这个并且对我来说效果很好......

json到xml -

JSON jsonObject = JSONSerializer.toJSON(json); 
    XMLSerializer xmlSerialized = (new XMLSerializer());
    xmlSerialized.setTypeHintsEnabled(false);
    String xml = xmlSerialized.write( jsonObject );

和xml到json

org.json.JSONObject object;
    String json = null;
    try {
        object = XML.toJSONObject(xml);
         json = object.toString();
    } catch (JSONException e) {
        e.printStackTrace();
    }

希望这会有所帮助.. :)

答案 2 :(得分:0)

Underscore-java 库有静态方法 U.jsonToXml(json)。