我有一个像这样的php数组:
Array
(
[0] => banana, peach, cherry
[1] => strawberry, apple, lime
)
我使用json_encode($ myArray)
将它传递给Jquery在Jquery中,我收到了这样的数组:[“香蕉,桃子,樱桃”,“草莓,苹果,酸橙”]
现在我想提取每个值:“香蕉,桃子,樱桃”& “草莓,苹果,酸橙”
当我尝试使用它时:
$.each(data, function(key, value){
alert(value);
});
它提醒我每个字符:[“b a n a n ................等而不是每个值。
你知道为什么吗?
编辑:
这是我从php接收数据的方式:
$.post('ajax/fruits.php', function(data) {
var obj = $.parseJSON(data);
var chunks = obj['chunks'] // gives me : ["banana, peach, cherry","strawberry, apple, lime"]
if (obj['error']==0) {
mix_fruits(chunks); // a function that should extract each value
}
});
答案 0 :(得分:3)
你没有显示你如何传递和接收data
,但是在这个过程中你犯了一个错误。
从描述中可以明显看出data
是一个字符串,而不是一个数组,因为它应该基于PHP变量。由于字符串以构成数据的JSON表示的字符开头,这意味着JSON被包装成字符串而不是解析为JavaScript文字。
假设传递/接收不是通过AJAX请求完成的(在这种情况下jQuery几乎肯定会自动解析数据)我猜你正在这样做:
var data = '<?php echo json_encode($data); ?>';
而你应该这样做:
var data = <?php echo json_encode($data); ?>; // no quotes!
答案 1 :(得分:2)
您需要先解析JSON对象,然后才能使用它,
var jsonObj = jQuery.parseJSON(data);
然后遍历每个项目使用此,
for(var key in jsonObj)
{
curr = jsonObj[key];
}
如果你想使用非jquery,