[软件设计/软件工程] 使用 Javascript 的 JSON 到 XML

[复制链接]
发表于 2022-5-4 13:29:16
问题
我正在尝试将 JSON 转换为 XML,但我没有得到确切的输出。在我的 JSON 中,它没有将其转换为 XML 数组
  1. var InputJSON = "{"body":{"entry": [{ "fullURL" : "abcd","Resource": "1234"},{ "fullURL" : "efgh","Resource": "5678"}]}}";
  2. var output = eval("OBJtoXML("+InputJSON+");")

  3. function OBJtoXML(obj) {
  4.     var xml = '';
  5.     for (var prop in obj) {
  6.         xml += "<" + prop + ">";
  7.         if(obj[prop] instanceof Array) {
  8.             for (var array in obj[prop]) {
  9.                 xml += OBJtoXML(new Object(obj[prop][array]));
  10.             }
  11.         } else if (typeof obj[prop] == "object") {
  12.             xml += OBJtoXML(new Object(obj[prop]));
  13.         } else {
  14.             xml += obj[prop];
  15.         }
  16.         xml += "</" + prop + ">";
  17.     }
  18.     var xml = xml.replace(/<\/?[0-9]{1,}>/g,'');
  19.     return xml
  20. }
复制代码

实际生产:
  1. <body>
  2.   <entry>
  3.     <fullURL>abcd</fullURL>
  4.     <Resource>1234</Resource>
  5.     <fullURL>efgh</fullURL>
  6.     <Resource>5678</Resource>
  7.   </entry>
  8. </body>
复制代码

预期输出:
  1. <body>
  2.   <entry>
  3.     <fullURL>abcd</fullURL>
  4.     <Resource>1234</Resource>
  5.   </entry>
  6. <entry>
  7.     <fullURL>efgh</fullURL>
  8.     <Resource>5678</Resource>
  9.   </entry>
  10. </body>
复制代码

如果我在代码中遗漏了任何内容,请指导我达到预期的结果

回答
将 OBJtoXML 函数替换为
  1. function OBJtoXML(obj) {
  2.   var xml = '';
  3.   for (var prop in obj) {
  4.     xml += obj[prop] instanceof Array ? '' : "<" + prop + ">";
  5.     if (obj[prop] instanceof Array) {
  6.       for (var array in obj[prop]) {
  7.         xml += "<" + prop + ">";
  8.         xml += OBJtoXML(new Object(obj[prop][array]));
  9.         xml += "</" + prop + ">";
  10.       }
  11.     } else if (typeof obj[prop] == "object") {
  12.       xml += OBJtoXML(new Object(obj[prop]));
  13.     } else {
  14.       xml += obj[prop];
  15.     }
  16.     xml += obj[prop] instanceof Array ? '' : "</" + prop + ">";
  17.   }
  18.   var xml = xml.replace(/<\/?[0-9]{1,}>/g, '');
  19.   return xml
  20. }
复制代码






上一篇:在 Swift 中获取 double 的小数部分
下一篇:“拒绝访问” Excel 2019 桌面上的 Worksheet

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表