无法将json_encode数组元素转换为单独的jQuery变量

时间:2014-03-08 11:11:28

标签: php jquery json

我有一个PHP文件,我使用jQuery发布。 PHP文件返回

$array = array('v1' => $v1, 'v2' => $v2, 'v3' => $v3);
echo json_encode($array);

我可以使用

将整个返回的内容读取到文本框中
$.post( "Processor.php", { var1: var1})
    .done(function( data ) {
    $("#textbox").val(data);
});

但是我希望将返回的三个数组元素分成单独的jQuery变量。我尝试了这两种方法,但它们都没有用。

$("#textbox").val(data['v1']);
$("#textbox").val(data.v1);

非常感谢。

3 个答案:

答案 0 :(得分:0)

您的ajax post请求会返回一个字符串。

你需要解析它:

$.post( "Processor.php", { var1: var1})
    .done(function( data ) {
        object = JSON.parse(data);
        $("#textbox").val(object.v1);
});

答案 1 :(得分:0)

根据documentation,您应该明确地将dataType设置为JSON:

$.post( "Processor.php", { var1: var1})
    .done(function( data ) {
    console.log(data);
}, 'json');

或发送正确的HTTP标头:Content-Type: application/json

答案 2 :(得分:0)

您可以将代码设为以下内容。

$.getJSON("Processor.php",{ var1: var1},function(data){
     $( "#textbox" ).val( data.v1 );
     });

同样,您也可以从数组中获取其他键值。