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

时间:2015-12-01 12:09:43

标签: json xml ember.js command-line-interface

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

我的步骤是

bower install xml2json

在ember-cli-build.js中我在返回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`

我希望这是我错过的一些简单的事情,有人可以勾勒出这个过程应该是什么吗?

1 个答案:

答案 0 :(得分:0)

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;
  });
}

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

如果您更愿意使用导入,只需创建以下垫片:

// vendor/xmltojson.js

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

  return {default: window.xmltojson};
});
您的ember-cli-build.js中的

和app.import(“vendor / xmltojson”)