【问题标题】:How can I create js array from json object returned from php?如何从 php 返回的 json 对象创建 js 数组?
【发布时间】:2013-05-23 17:29:57
【问题描述】:

Javascript 有这行代码,可以提醒您正在使用什么类型的对象。 如下:

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

所以,我正在使用 phpjs - extjs 4.2,并寻找一种方法将 php 创建的 associative array 通过使用 json_encode()。所以我做了以下事情:

<?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] => ...)
)

【问题讨论】:

    标签: php associative-array json extjs4.2


    【解决方案1】:

    您在问如何解析一串 JSON 编码的数据到 Javascript 对象中。

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

    【讨论】:

    • 那么如果我做"var arr = JSON.parse(obj)",我会得到一个js数组吗?
    • 请记住,JavaScript 区分数字索引数组 (Array) 和关联数组 (Object)。如果你想要前者,你的 JSON 应该看起来像 ["item1","item2"]。如果你想要一个关联数组,JSON 可以看起来像:{"key1":"item1","key2":"item2"}。要回答您的问题,您可能会根据obj 的语法得到一个数组或对象。
    • 我要编辑上面php会回显的数组结构,你能根据结构回答吗...非常感谢
    • @Brian:JSON.parse 将根据 JSON 返回 Javascript 数组或对象。使用您的调试器(或console.log)查看它返回的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2018-11-08
    • 2017-09-27
    相关资源
    最近更新 更多