如何从php返回的json对象创建js数组?

时间:2013-05-23 17:29:57

标签: php associative-array json extjs4.2

Javascript具有此fin代码行,可提醒您正在使用的对象类型。 它是以下内容:

alert(Object.prototype.toString.apply(obj))

所以,我正在使用 php js - extjs 4.2 ,并寻找一种方法来传递由associative array创建的使用 json_encode() 将php转换为java。所以我做了以下事情:

<?php echo json_encode($some_array); ?>

Ext.Ajax.request(
{
    url: 'php/parse.php?id='+buttonText,
    method: 'GET',
    success: function(response) 
    {
        //var obj = response;
        var obj = response.responseText;
        alert(Object.prototype.toString.apply(obj));                    
    },
    failure: function(response) 
    {
        alert('server-side failure with status code ' + response.status);
    }
});

代码的php部分位于parse.php文件中,您可以从js代码中看到。当我警告obj时,它显示了一串json编码的php数组。并且js说 obj string object 。如果我保留注释行没有responseText ,则js会提醒 obj is an Object ,但不会说出什么类型(猜测json类型)。

我想要实现的目标,是拥有一个合法的js数组,它将从响应中获取php数组(响应是函数中的参数)。谢谢

编辑:我的php数据结构

array
(
    'vars' => array( 
                   [0] => 'name' => '1', 'value' => 2
                   [1] => ... )
    'file' => array(
                   [0] => 'name' => 'aaa.aa'
                   [1] => ...)
)

1 个答案:

答案 0 :(得分:2)

您正在询问如何将一串JSON编码数据解析为Javascript对象。

内置的JSON.parse函数就是这样做的。