JSON字符串:
'["Colour","Audio","Effect"]'
我遇到了一个问题,虽然这是一个简单的解决方案。我试过了:
for (var o in obj) { } // iterates through each individual character of the json object
for (var i = 0; i < obj.length; i++) { } // same as above
$.each(obj, function(i, v) { }); // same as above
我在这里看不到什么。所以希望那里的人可以弄清楚出了什么问题。
答案 0 :(得分:4)
首先,解析JSON字符串:
var jsonStr = '["Colour","Audio","Effect"]';
var obj = JSON.parse(jsonStr);
// Alternatively, write out the JSON directly
// var obj = ["Colour","Audio","Effect"];
然后,
for (var i = 0; i < obj.length; i++) { }
或
$.each(obj, function(i, v) { });
for (var o in obj) { }
遍历数组的原始属性,包括length
,并且不适合迭代数组。
答案 1 :(得分:1)
你只需要声明你的obj变量:
var obj = ["Colour","Audio","Effect"];
for (var i = 0; i < obj.length; i++) {
alert(obj[i]);
}
答案 2 :(得分:1)
您需要先解析JSON字符串才能使用它。
["Colour","Audio","Effect"]
是一个数组,'["Colour","Audio","Effect"]'
是一个字符串。
您需要使用JSON.parse('["Colour","Audio","Effect"]')
(或$.parseJSON
)将JSON字符串转换为可用的JavaScript数组。
var obj = '["Colour","Audio","Effect"]';
$.each(obj, function(i, v) {
console.log(v); // prints each letter
});
var obj = ["Colour","Audio","Effect"]; // or $.parseJSON('["Colour","Audio","Effect"]')
$.each(obj, function(i, v) {
console.log(v); // prints each element
});