欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术学院

如何将JSON数据转换为XML格式 Java实现JSON转XML

作者:幻夢星雲2025-12-18 00:00:00
Java中将JSON转XML最常用方式是org.json库的XML.toString()方法,支持嵌套与数组,需指定根节点、注意空值忽略及特殊字符转义。

Java中将JSON数据转换为XML,最常用且稳定的方式是使用org.json库提供的XML.toString()方法。它能自动处理嵌套对象、数组、基本类型,并生成符合XML规范的结构(注意:不是严格意义上的“标准XML Schema”,但可被主流解析器识别)。

引入依赖(Maven)

确保项目中包含官方JSON库:


  org.json
  json
  20250303

基础转换示例(单层 & 嵌套JSON)

直接调用XML.toString(JSONObject)即可完成转换,无需手动遍历:

import org.json.JSONObject;
import org.json.XML;

String jsonStr = "{"name":"张三","age":28,"city":"北京"}";
JSONObject jsonObj = new JSONObject(jsonStr);
String xml = XML.toString(jsonObj);
System.out.println(xml);
// 输出类似:
// 张三28北京

处理JSON数组(关键细节)

JSON数组会默认转为同名标签的多个重复节点。需通过XML.toString(obj, "root")指定根元素,并用XML.arrayToXml()或约定键名(如"items")提升可读性:

  • 若原始JSON含数组:{"users":[{"name":"A"},{"name":"B"}]},直接转将生成
    AB
  • 更合理做法:用JSONObject包装后调用XML.toString(jsonObj, "root"),再对数组字段做预处理,或改用JSONArray + 自定义封装逻辑
  • 注意:数组内对象属性名相同时,生成的XML标签名一致,靠位置区分——解析时需按顺序读取

注意事项与常见问题

该方案简洁高效,但有几点必须留意:

  • 特殊字符自动转义:如"&"会变成&"变成zuojiankuohaophpcn,无需额外处理
  • 空值处理null字段默认被忽略;如需保留,可先用jsonObject.put("field", JSONObject.NULL)标记
  • 根节点缺失:原始方法不生成顶层根标签,建议用XML.toString(jsonObj, "root")显式指定
  • 不支持注释和CDATA:生成的是纯内容XML,无注释、无命名空间、无DOCTYPE声明