Json数组编码和解码相同

时间:2017-04-07 08:28:04

标签: php arrays json

我使用以下代码将数组编码为json格式:

$arrayName[] = array('user_role_id' => 1, 'user_id' => 1);
$arrayName[] = array('user_role_id' => 2, 'user_id' => 2);

$jos = json_encode(array_values($arrayName));

输出

[{"user_role_id":1,"user_id":1},{"user_role_id":2,"user_id":2}]

并将其发送到浏览器。

然后经过一些步骤浏览器返回相同的数组。

但是当我尝试解码时

$return = json_decode($jos,TRUE);

我收到错误:数组到字符串转换。

浏览器没有对数组做任何事情。只需返回我提供的内容。

代码流程如下:

<?php

if(isset($_GET['array']))
{
    $arrayName[] = array('user_role_id' => 1, 'user_id' => 1);
    $arrayName[] = array('user_role_id' => 2, 'user_id' => 2);
    header('Content-Type: application/json');
    echo $jos = json_encode($arrayName);
}
else
{
    if(isset($_POST['jos']))
    {
        $jos = $_POST['jos'];

        echo $new_jos = json_decode($jos,TRUE);
    }
}

有人可以帮助我吗?

可能出现什么问题?

2 个答案:

答案 0 :(得分:1)

问题在于这一行:

echo $new_jos = json_decode($jos,TRUE);

所以你将你的json字符串转换为一个数组(有效!),然后回显它 - 这就是抛出错误。

只需使用

$new_jos = json_decode($jos,TRUE);

答案 1 :(得分:0)

尝试在PHP文件中添加以下行,从浏览器接收数据,然后尝试解码。

header('Content-Type: application/json');
相关问题