繁体   English   中英

如何从jquery读取Json_encoded php数组?

[英]How to read Json_encoded php array from jquery?

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

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

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

在Jquery中,我收到这样的数组:[“香蕉,桃子,樱桃”,“草莓,苹果,酸橙”]

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

当我尝试使用此:

$.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
    }
});

您没有显示如何传递和接收data ,但是在过程中的某个地方您犯了一个错误。

从描述中可以明显看出, data是字符串,而不是数组,因为它本应基于PHP变量。 并且由于字符串以构成数据的JSON表示的字符开头,因此这意味着JSON被包装为字符串,而不是解析为JavaScript文字。

假设没有通过AJAX请求完成传递/接收(在这种情况下jQuery几乎肯定会自动解析数据),我猜测您正在这样做:

var data = '<?php echo json_encode($data); ?>';

而您应该这样做:

var data = <?php echo json_encode($data); ?>; // no quotes!

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

var jsonObj = jQuery.parseJSON(data);

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

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

而且,如果您要使用非jQuery之一,

在JavaScript中解析JSON?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM