我有一个休息服务,我发送Json数据为["1","2","3"]
(字符串列表),它在firefox rest客户端插件中工作正常,但在应用程序中发送数据时,结构为{{1格式,我无法传递数据,如何将{"0":"1","1":"2","2":"3"}
转换为{"0":"1","1":"2","2":"3"}
以便我可以通过应用程序发送数据,我们将非常感谢任何帮助。
答案 0 :(得分:0)
如果json的格式是{ "index" : "value" }
,就是我在{"0":"1","1":"2","2":"3"}
中看到的,那么我们可以利用这些信息,你可以这样做:
var myObj = {"0":"1","1":"2","2":"3"};
var convertToList = function(object) {
var i = 0;
var list = [];
while(object.hasOwnProperty(i)) { // check if value exists for index i
list.push(object[i]); // add value into list
i++; // increment index
}
return list;
};
var result = convertToList(myObj); // result: ["1", "2", "3"]
请参阅小提琴:http://jsfiddle.net/amyamy86/NzudC/
在列表中使用虚假索引“ iterate ”。请记住,如果索引中断,这将无效:{"0":"1","2":"3"}
答案 1 :(得分:0)
您需要将json解析回javascript对象。在后来的dojo迭代中有解析工具作为已经指出的其他贡献者之一,但是大多数浏览器都支持JSON.parse()
,这是在ECMA-262第5版(JS所基于的规范)中定义的。它的用法是:
var str = your_incoming_json_string,
// here is the line ...
obj = JSON.parse(string);
// DEBUG: pump it out to console to see what it looks like
a.forEach(function(entry) {
console.log(entry);
});
对于不支持JSON.parse()
的浏览器,您可以使用json2.js实现它,但由于您实际使用的是dojo,因此dojo.fromJson()
是您的选择。 Dojo为您提供浏览器独立性。
var str = your_incoming_json_string,
// here is the line ...
obj = dojo.fromJson(str);
// DEBUG: pump it out to console to see what it looks like
a.forEach(function(entry) {
console.log(entry);
});
如果你使用的是AMD版本的Dojo,那么你需要回到Dojo文档并查看dojo.fromJson页面上的dojo / _base / json示例。