如何从jquery读取Json_编码的php数组?

如何从jquery读取Json_编码的php数组?,php,jquery,arrays,json,Php,Jquery,Arrays,Json,我有一个像这样的php数组: Array ( [0] => banana, peach, cherry [1] => strawberry, apple, lime ) 我使用json_encode($myArray)将其传递给Jquery 在Jquery中,我收到如下数组:[“香蕉、桃子、樱桃”、“草莓、苹果、酸橙”] 现在我想提取每个值:“香蕉、桃子、樱桃”和“草莓、苹果、酸橙” 当我尝试使用此选项时: $.each(data, function(key, va

我有一个像这样的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
    }
});

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

从描述中可以明显看出,
data
是一个字符串,而不是基于PHP变量的数组。由于字符串以构成数据JSON表示形式的字符开头,这意味着JSON将被包装到字符串中,而不是作为JavaScript文本解析

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

var data = '<?php echo json_encode($data); ?>';
var data = <?php echo json_encode($data); ?>; // no quotes!
var数据=”;
而您应该这样做:

var data = '<?php echo json_encode($data); ?>';
var data = <?php echo json_encode($data); ?>; // no quotes!
var data=;//没有引号!

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

从描述中可以明显看出,
data
是一个字符串,而不是基于PHP变量的数组。由于字符串以构成数据JSON表示形式的字符开头,这意味着JSON将被包装到字符串中,而不是作为JavaScript文本解析

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

var data = '<?php echo json_encode($data); ?>';
var data = <?php echo json_encode($data); ?>; // no quotes!
var数据=”;
而您应该这样做:

var data = '<?php echo json_encode($data); ?>';
var data = <?php echo json_encode($data); ?>; // no quotes!
var data=;//没有引号!

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

var jsonObj = jQuery.parseJSON(data);
然后,要循环遍历每个项目,请使用

for(var key in jsonObj)
{
    curr = jsonObj[key];
}
如果您想使用非jquery one


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

var jsonObj = jQuery.parseJSON(data);
然后,要循环遍历每个项目,请使用

for(var key in jsonObj)
{
    curr = jsonObj[key];
}
如果您想使用非jquery one


尝试使用jQuery函数$.parseJSON()解析json。var parsedData=$.parseJSON(数据);$.each(parsedData,函数(键,值){…..您的Ajax调用应该将接收到的数据作为JSON处理,并自动将其转换为JS对象,但它似乎将其作为普通字符串处理,而不是转换。请将实际Ajax调用的代码添加到问题中;这将帮助我们为您调试问题。我已更新了代码,以防万一。@SergentPepper:那么,
mix_-fruits
do做什么呢?@Jon:事实上,数据返回2个对象->错误和块。mix_-fruits应该分解chunks对象,以便分别得到这2个值:“香蕉、桃子、樱桃”和“草莓、苹果、酸橙”。尝试用jQuery函数$.parseJSON()解析json。var parsedData=$.parseJSON(data);$。每个值(解析数据,函数(键,值){…..您的Ajax调用应该将接收到的数据作为JSON处理,并自动将其转换为JS对象,但它似乎将其作为普通字符串处理,而不是转换。请将实际Ajax调用的代码添加到问题中;这将帮助我们为您调试问题。我已更新了代码,以防万一。@SergentPepper:那么,
mix_-fruits
do做什么呢?@Jon:事实上,数据返回两个对象->错误和块。mix_-fruits应该分解chunks对象,以便分别得到这两个值:“香蕉、桃子、樱桃”和“草莓、苹果、酸橙”。