我正在为Pebble写一个小应用程序。目的是将Web服务发送到服务器,然后处理XML响应。这里的问题是Pebble.JS不支持XML响应,只支持文本或JSON响应。我正在寻找一种方法将响应转换为JSON,以便轻松利用这些信息。我无法找到Pebble.JS的工作方式来实现这一目标。
有没有人知道如何在Pebble.JS中获取JSON中XML的属性和子元素(及其属性)?
谢谢!
答案 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可寻址对象分配变量。