【工具】XML和JSON互相转换

这篇具有很好参考价值的文章主要介绍了【工具】XML和JSON互相转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、JSON解析为XML

function parseJSONToXML(json) {
  let xmlDoc = document.implementation.createDocument(null, '');

  function parseValue(value, parentElement) {
    if (Array.isArray(value)) {
      for (let item of value) {
        let arrayElement = xmlDoc.createElement(parentElement.tagName);
        parseValue(item, arrayElement);
        if (parentElement) {
          parentElement.appendChild(arrayElement);
        }
      }
    } else if (typeof value === 'object') {
      parseObject(value, parentElement);
    } else {
      parentElement.textContent = value;
    }
  }

  function parseObject(obj, parentElement) {
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        let value = obj[key];
        let element = xmlDoc.createElement(key);

        parseValue(value, element);

        if (parentElement) {
          parentElement.appendChild(element);
        } else {
          xmlDoc.appendChild(element);
        }
      }
    }
  }

  parseObject(json, null);

  let serializer = new XMLSerializer();
  return '<?xml version="1.0" encoding="UTF-8"?>' + serializer.serializeToString(xmlDoc);
}

// 使用示例
let json = {
  root: {
    name: 'John',
    age: 30,
    addresses: [
      { street: 'Main St', city: 'City1' },
      { street: 'Second St', city: 'City2' }
    ]
  }
};

let xmlString = parseJSONToXML(json);
console.log(xmlString);

2、XML解析为JSON

function parseXMLToJSON(xml) {
  let parser = new DOMParser();
  let xmlDoc = parser.parseFromString(xml, 'text/xml');

  function parseElement(element) {
    let obj = {};
    if (element.hasChildNodes()) {
      let nestedElements = Array.from(element.children);
      if (nestedElements.length > 0) {
        nestedElements.forEach((nestedElement) => {
          let key = nestedElement.tagName;
          let value = parseElement(nestedElement);
          if (obj.hasOwnProperty(key)) {
            if (!Array.isArray(obj[key])) {
              obj[key] = [obj[key]];
            }
            obj[key].push(value);
          } else {
            obj[key] = value;
          }
        });
      } else {
        obj = element.textContent;
      }
    }
    return obj;
  }

  let rootNode = xmlDoc.documentElement;
  let json = {};
  let rootElement = parseElement(rootNode);
  json[rootNode.tagName] = rootElement;

  return JSON.stringify(json);
}

// 使用示例
let xmlString = '<?xml version="1.0" encoding="UTF-8"?><root><name>John</name><age>30</age><addresses><street>Main St</street><city>City1</city></addresses><addresses><street>Second St</street><city>City2</city></addresses></root>';

let json = parseXMLToJSON(xmlString);
console.log(json);

文章来源地址https://www.toymoban.com/news/detail-663842.html

到了这里,关于【工具】XML和JSON互相转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测实例分割数据集转换:从XML和JSON到YOLOv8(txt)

            如果大家想要了解关于yolov8的其他任务和相关内容可以点击这个链接,我这边整理了许多其他任务的说明博文,后续也会持续更新,包括yolov8模型优化、sam等等的相关内容。 YOLOv8(附带各种任务详细说明链接) 源码下载地址: XMLJSON 目标检测、实例分割标签转换

    2024年02月03日
    浏览(42)
  • java--- xml和对象之间的互相转换

    第一种方法是使用 JAXB(Java Architecture for XML Binding) 实现XML与Bean的相互转换 简介 JAXB 是一个业界的标准,是一项可以根据 XML Schema 产生 Java 类的技术。该过程中, JAXB 也提供了将XML实例文档反向生成 Java 对象树的方法,并能将 Java 对象树的内容重新写到  XML 实例文档。 Jaxb

    2024年02月04日
    浏览(76)
  • 如何自己实现一个丝滑的流程图绘制工具(五)bpmn的xml和json互转

    背景 因为服务端给的数据并不是xml,而且服务端要拿的数据是json,所以我们只能xml和json互转,来完成和服务端的对接 xml转json jsonxml.js json 转为xml

    2024年02月11日
    浏览(42)
  • x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

    dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML,XML 和 CSV 五种常用的数据格式作为输入和输出格式。 实现常用数据格式(JSON, YAML, TOML, XML, CSV)之间的转换。 单执行文件,不需要依赖第三方库。 启动速度更快,

    2024年01月23日
    浏览(58)
  • JSON是什么意思?JSON和JS对象的互相转换

    JSON 的英文全称是 JavaScript Object Notation,即“JavaScript 对象表示法”。简单来讲,JSON 就是 Javascript 对象和数组的字符串表示法,它使用文本表示一个 JS 对象或数组的信息,因此,JSON 的本质是字符串。 作用:JSON 是一种轻量级的文本数据交换格式,在作用上类似于 XML,专门用

    2024年02月09日
    浏览(50)
  • PHP数组与JSON互相转换

    PHP数组与JSON互相转换,数组转json:json_encode();json转数组:json_decode(); 使用json_encode转json时会发现中文字符会出现乱码 只需要在json_encode();函数中加入JSON_UNESCAPED_UNICODE即可。 1、PHP数组转JSON 2、PHP数组转JSON中文字符不乱码 3、PHP JSON转数组 4、PHP JSON转对象 推荐文章:

    2024年02月12日
    浏览(48)
  • xml转json

    初始 xml 格式如下: 上述转成 json 格式就是: 但是 java 不止一个版本,我们需要的格式就如下: 如果我们要做到上诉 json 所示,需要 xml 格式为如下,但是有时候数据就只有单个的情况下,我们格式转换就有问题 问题:就是我们不知道 xml 中的元素是单个元素还是一个数组形

    2024年02月10日
    浏览(36)
  • yml、xml、json文件

    目录 一、yml (1)注释 (2)内容语法 (3)取名规范 二、xml (1)注释 (2)内容语法

    2024年02月06日
    浏览(50)
  • java xml转json

    java xml转json 技术博客 http://idea.coderyj.com/ 最近在对接海康摄像头不支持json 返回的数据是xml尝试了各种方法,所以来总结一下 1.得到xml数据 2.java 将xml转json 依赖包 上代码 ps new ByteArrayInputStream(xmlString.getBytes(\\\"UTF-8\\\")) 一定要先转换为 utf8 才可以不然会直接失败

    2024年02月10日
    浏览(34)
  • 将json字符串与实体类互相转换

    如果我们接收到的是一个json字符串,我们该如何对该字符串进行解析? 方式一:使用实体类进行解析 方式二:使用map进行解析 使用的依赖jar包: fastjson 使用实体类进行解析 创建一个用于接收的实体类:使用json字符串中的那些字段,实体类的属性值一定要和JSON串中的 key

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包