我正在为我的 Pebble 编写一个小型应用程序。目的是将 Web 服务发送到服务器,然后处理 XML 响应。这里的问题是 Pebble.JS 不支持 XML 响应,只支持文本或 JSON 响应。我正在寻找一种将响应转换为 JSON 以轻松利用信息的方法。我找不到 Pebble.JS 的工作方式来实现这一点。
有谁知道如何在 Pebble.JS 中以 JSON 格式获取 XML 的属性和子元素(及其属性)?
谢谢!
我正在为我的 Pebble 编写一个小型应用程序。目的是将 Web 服务发送到服务器,然后处理 XML 响应。这里的问题是 Pebble.JS 不支持 XML 响应,只支持文本或 JSON 响应。我正在寻找一种将响应转换为 JSON 以轻松利用信息的方法。我找不到 Pebble.JS 的工作方式来实现这一点。
有谁知道如何在 Pebble.JS 中以 JSON 格式获取 XML 的属性和子元素(及其属性)?
谢谢!
您可以使用像这样的 Node XML Parser ( https://github.com/Leonidas-from-XIV/node-xml2js ) 并使其与 Browserify 的“浏览器”兼容 ( https://github.com/substack /节点浏览器)。
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
});
问题是 jQuery Mobile 不支持以 XML 形式传入的响应。我以前很烦人地遇到过这个问题。我解决它的方法是通过以下方式使用预期的响应标签创建我自己的 JSON 对象:
var IDs = message.match(/<id>(.*?)<\/id>/g);
var tempID = IDs[0].replace('<id>','').replace('</id>','');
这只是我正在为此工作的实际项目的一部分。它将需要根据您的需要进行一些修改,以使其达到您想要的效果。.match()
在创建 JSON 对象时,您可能希望将第二行与调用中的其他一些数组放在一个循环中。最后,您需要使用JSON.parse(...);
函数调用为您创建的 JSON 可寻址对象分配一个变量。