0

我有一个像这样的 php 数组:

Array
(
    [0] => banana, peach, cherry
    [1] => strawberry, apple, lime
)

我使用 json_encode($myArray) 将它传递给 Jquery

在 Jquery 中,我收到这样的数组:[“banana, peach,cherry”,“strawberry,apple,lime”]

现在我想提取每个值:“香蕉、桃子、樱桃”和“草莓、苹果、酸橙”

当我尝试使用它时:

$.each(data, function(key, value){
    alert(value);
});

它会提醒我每个字符: [ " bana 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
    }
});
4

2 回答 2

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!
于 2013-09-04T09:12:41.813 回答
2

您需要先解析 JSON 对象才能使用它,

var jsonObj = jQuery.parseJSON(data);

然后循环遍历每个项目使用这个,

for(var key in jsonObj)
{
    curr = jsonObj[key];
}

如果你想使用非 jquery 之一,

在 JavaScript 中解析 JSON?

于 2013-09-04T09:13:08.563 回答