使用pebble.js将XML转换为JSON

时间:2014-11-30 10:10:23

标签: javascript xml json cloudpebble pebble-js

我正在为Pebble写一个小应用程序。目的是将Web服务发送到服务器,然后处理XML响应。这里的问题是Pebble.JS不支持XML响应,只支持文本或JSON响应。我正在寻找一种方法将响应转换为JSON,以便轻松利用这些信息。我无法找到Pebble.JS的工作方式来实现这一目标。

有没有人知道如何在Pebble.JS中获取JSON中XML的属性和子元素(及其属性)?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以像这样使用Node XML Parser(https://github.com/Leonidas-from-XIV/node-xml2js),并使其与Browserify(https://github.com/substack/node-browserify)的“浏览器”兼容。

Browserify用法: browserify raw-app.js -o compiled-app.js

我认为您还需要安装nodejs,但这不是一个大问题。

这里有一些即时编写的代码:

   var xml2js = require('xml2js');

   var xml = "<root>This is a root object!<child>This a child</child></root>"

   xml2js.parseString(xml, function (error, result) {
       console.log(result); // JSObject
   });

答案 1 :(得分:0)

问题是jQuery Mobile不支持以XML形式出现的响应。我之前非常烦恼地遇到过这个问题。我解决它的方法是通过以下方式使用预期的响应标记创建我自己的JSON对象:

var IDs = message.match(/<id>(.*?)<\/id>/g);
var tempID = IDs[0].replace('<id>','').replace('</id>','');

这只是我实际项目的一部分,我正在为此工作。它需要根据您的需要进行一些修改,以达到您想要的效果。在制作JSON对象时,您可能希望将第二行放在循环中,并使用.match()调用中的其他数组。最后,您需要使用JSON.parse(...);函数调用为您所做的JSON可寻址对象分配变量。