代码之家  ›  专栏  ›  技术社区  ›  dot

如何将json对象从PHP转换为Javascript数组

  •  0
  • dot  · 技术社区  · 6 年前

    我需要将一个javascript数组“传递”给其他人编写的一些前端逻辑。在查看他们的代码时,我看到他们正在创建如下虚拟数据:

    <script>
    //define some sample data
     var tabledata = [
        {id:1, name:"JohnDoe", company:"Acme", email:"jdoe@acme.com", title:"CEO", regtype:"12345"},
        {id:2, name:"JaneDoe", company:"Widgets Inc", email:"janedoe@hotmail.com", title:"Programmer", regtype:"12345"}    
     ];
    

    我的逻辑是从数据库中获取真实数据的所有后端。 我得到一个json字符串,如下所示:

    {
        "items": [{
            "id": 2089025,
            "first_name": "Devon",
            "last_name": "Ackerman"
        }, {
            "id": 2163367,
            "first_name": "Ryan",
            "last_name": "Acuff"
        }]
    }
    

    问题

    我不知道如何在PHP中转换/转换它,使其最终成为Javascript中的数组。

    这是我目前在PHP中的代码,a)证明我得到了一个字符串b)尝试将其转换为json对象。

    $json_obj = json_decode($response, true);
    //echo json_last_error();
    echo gettype($response);
    echo gettype($json_obj);
    

    第一个gettype()返回“string”。第二个返回“array”。

    几行之后,我完成了PHP部分,并完成了以下操作:

    <script type="text/javascript">
    // pass PHP variable declared above to JavaScript variable
    var tabledata = <?php echo ($json_obj) ?>;
    console.log(typeof(tabledata))
    console.log(tabledata)
    

    我在控制台中看到以下两个调用的输出控制台.log():

    function
    ƒ Array() { [native code] }
    

    有人能给我指出正确的方向吗?

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Taplar    6 年前
    var tabledata = <?php echo ($json_obj) ?>;
    

    应该是。。。

    var tabledata = <?php echo json_encode($json_obj) ?>;
    

    在您的例子中,因为您已经从一个编码值开始,所以您可以直接使用它。

    var tabledata = <?php echo $response ?>;
    

    或者我相信PHP有一个快捷方式来回音,你也可以这样做。。。

    var tabledata = <?= $response ?>;