我使用以下代码将数组编码为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);
}
}
有人可以帮助我吗?
可能出现什么问题?
答案 0 :(得分:1)
问题在于这一行:
echo $new_jos = json_decode($jos,TRUE);
所以你将你的json字符串转换为一个数组(有效!),然后回显它 - 这就是抛出错误。
只需使用
$new_jos = json_decode($jos,TRUE);
答案 1 :(得分:0)
尝试在PHP文件中添加以下行,从浏览器接收数据,然后尝试解码。
header('Content-Type: application/json');