javascript - JSON 到 XML 使用 Javascript

我正在尝试将 JSON 转换为 XML,但没有得到准确的输出。在我的 JSON 具有数组对象时,它没有将其转换为 XML 数组。主要是数组对象没有按预期转换为 XML

var InputJSON = "{"body":{"entry": [{ "fullURL" : "abcd","Resource": "1234"},{ "fullURL" : "efgh","Resource": "5678"}]}}";
var output = eval("OBJtoXML("+InputJSON+");")

function OBJtoXML(obj) {
    var xml = '';
    for (var prop in obj) {
        xml += "<" + prop + ">";
        if(obj[prop] instanceof Array) {
            for (var array in obj[prop]) {
                xml += OBJtoXML(new Object(obj[prop][array]));
            }
        } else if (typeof obj[prop] == "object") {
            xml += OBJtoXML(new Object(obj[prop]));
        } else {
            xml += obj[prop];
        }
        xml += "</" + prop + ">";
    }
    var xml = xml.replace(/<\/?[0-9]{1,}>/g,'');
    return xml
}

实际输出:
<body>
  <entry>
    <fullURL>abcd</fullURL>
    <Resource>1234</Resource>
    <fullURL>efgh</fullURL>
    <Resource>5678</Resource>
  </entry>
</body>

预期输出:
<body>
  <entry>
    <fullURL>abcd</fullURL>
    <Resource>1234</Resource>
  </entry>
 <entry>
    <fullURL>efgh</fullURL>
    <Resource>5678</Resource>
  </entry>
</body>

如果我从代码中遗漏任何内容以获得我的预期结果,请指导我

最佳答案

更换您的 OBJtoXML功能与

function OBJtoXML(obj) {
  var xml = '';
  for (var prop in obj) {
    xml += obj[prop] instanceof Array ? '' : "<" + prop + ">";
    if (obj[prop] instanceof Array) {
      for (var array in obj[prop]) {
        xml += "<" + prop + ">";
        xml += OBJtoXML(new Object(obj[prop][array]));
        xml += "</" + prop + ">";
      }
    } else if (typeof obj[prop] == "object") {
      xml += OBJtoXML(new Object(obj[prop]));
    } else {
      xml += obj[prop];
    }
    xml += obj[prop] instanceof Array ? '' : "</" + prop + ">";
  }
  var xml = xml.replace(/<\/?[0-9]{1,}>/g, '');
  return xml
}

https://stackoverflow.com/questions/48788722/

相关文章:

macos - 在OS X上构建OpenSSH:配置:警告:sandbox.h:存在,但无法编译

html - 使 SVG 适合父容器宽度

nlp - gensim doc2vec "intersect_word2vec_format"命令

android - 带数据绑定(bind)的 ConstraintLayout

scala - 在 Spark 中将连续变量转换为分类变量

macos - 安装 Unity 和 Android SDK for Mac 时,adb 在哪里?

curl - 使用 Curl for Dynamics Nav 验证 OData

date - 计算上次登录和当前日期之间的天数

php - cakephp 3 编辑用户用户名和密码 - 无法找到当前实体的表类

php - 什么是正确的 laravel 语法