Ember cli 将 xml 转换为 json 的最佳方式

Ember cli best way to convert xml to json

我想将我的 xml 转换为 json 所以我安装了 xml2json bower 组件但我不确定如何导入和使用在我的应用程序中。

我的步数是

bower install xml2json

in ember-cli-build.js 我把这一行放在 return app.toTree()

之前
app.import('bower_components/xml2json/xml2json.js');

在 app.js 我有这个代码

import xml2json from 'xml2json';

...

ready: function () {
 Em.$.ajax({
  url: "/data/sequence.xml",
        dataType:"xml"
    }).done(function(xmlData){
        var jsonData = Em.$.xml2json(xmlData);
        console.dir(jsonData);
        console.log(JSON.stringify(jsonData));
    });
}

我收到此控制台错误:

Could not find module `xml2json` imported from `sequence-app/app`

我希望这是我错过的简单的事情,谁能概述一下流程应该是什么?

xml2json.js 只是创建一个全局的 xml2json。如果不编写填充程序,您将无法导入它。

最简单的方法就是使用全局变量。不要导入它。

// in some route

model() {
  return Em.$.ajax({
    url: "/data/sequence.xml",
    dataType:"xml"
  }).done(function(xmlData){
      var jsonData = xml2json.xml_to_object(xmlData);
      console.dir(jsonData);
      console.log(JSON.stringify(jsonData));
      return jsonData;
  });
}

有关更多信息,请阅读 bower 组件的源代码: https://github.com/ron-liu/xml2json/blob/master/xml2json.js

如果您真的更喜欢使用导入,只需创建以下 shim:

// vendor/xmltojson.js

define('xmltojson', [], function() {
  'use strict';

  return {default: window.xmltojson};
});

和 app.import("vendor/xmltojson") 在你的 ember-cli-build.js