简体   繁体   English

使用E4x和JavaScript将JSON转换为XML

[英]JSON to XML conversion using E4x and javascript

I need to convert an JSON to XML using E4x and javascript where my XML attribute is picked from JSON key. 我需要使用E4x和javascript将JSON转换为XML,其中我的XML属性是从JSON密钥中选取的。 Example: var JSONstr = {"data": {"firstName": "ABC","lastName": "XYZ","email": "test@test.com"}}; 示例:var JSONstr = {“ data”:{“ firstName”:“ ABC”,“ lastName”:“ XYZ”,“ email”:“ test@test.com”}}; and XML output should be . XML输出应为。

My code snippet is as follow: 我的代码段如下:

var xmlProfile = new XML('<root/>');
var keyAttr = Object.keys(JSONstr.data);
var xml = convertDataToXml(dataJSON, xmlProfile, keyAttr);
 function convertDataToXml(data, xml,keyAttr)
  { var attr;
   for(key in keyAttr){
     if(data.hasOwnProperty(key)) {
      if (data[key] instanceof Array) {
        // create node
        attr = keyAttr[key];
        xml.appendChild(<{attr}/>);
        convertDataToXml(data[key], xml[attr],attr[key]);
      }
      else {
       attr = keyAttr[key];
        if (attr != undefined){
         var attrib="@"+attr;
          xml.{attrib} = data.keyAttr[key]//data.attr;
          }
         }

    }
    return xml;
  }
}

The line xml.{attrib} = data.keyAttr[key]//data.attr; 这行xml。{attrib} = data.keyAttr [key] // data.attr; doesnot seem to work. 似乎不起作用。 How do i create an attribute dynamically? 如何动态创建属性? Any input is welcome. 欢迎任何输入。

The line xml.{attrib} = data.keyAttr[key]//data.attr; 这行xml。{attrib} = data.keyAttr [key] // data.attr; doesnot seem to work. 似乎不起作用。 How do i create an attribute dynamically? 如何动态创建属性?

Change xml.{attrib} to xml[attrib] . xml.{attrib}更改为xml[attrib]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM