我有一个用于重新排序列表的jquery插件,提供的数据是序列化的。
例如:
[{"id":13},{"id":14},{"id":15,"children":[{"id":16},{"id":17},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18}]}]
我的计划是将数据提交到php脚本,将其加载到数组中,然后将给定数据的不同部分保存在数据库的不同行中。
我在将数据加载到数组时遇到问题,我的代码如下:
<?php
$data = $_POST['data'];
echo $data . "<br /><br />";
$arr = unserialize($data);
echo var_dump($arr);
?>
但是,当尝试使用上面的数据样本运行脚本时,我收到以下错误:
注意:unserialize():D中的144字节偏移量0出错:第5行.......
答案 0 :(得分:2)
序列化函数通常不适用于JSON。请改用json_decode()
:
$data = '[{"id":13},{"id":14},{"id":15,"children":[{"id":16},{"id":17},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18},{"id":18}]}]';
$json = json_decode($data, true); // true flag makes it an array instead of an object
print_r($json);
这将返回以下内容:
Array ( [0] => Array ( [id] => 13 ) [1] => Array ( [id] => 14 ) [2] => Array ( [id] => 15 [children] => Array ( [0] => Array ( [id] => 16 ) [1] => Array ( [id] => 17 ) [2] => Array ( [id] => 18 ) [3] => Array ( [id] => 18 ) [4] => Array ( [id] => 18 ) [5] => Array ( [id] => 18 ) [6] => Array ( [id] => 18 ) [7] => Array ( [id] => 18 ) [8] => Array ( [id] => 18 ) [9] => Array ( [id] => 18 ) ) ) )
答案 1 :(得分:1)
是的,它是json
并且PHP得到了它自己的功能:
$arr = json_decode($data);
答案 2 :(得分:1)
您需要使用json_decode功能。
<?php
$data = $_POST['data'];
echo $data . "<br /><br />";
$arr = json_decode($data, true);
echo var_dump($arr);
?>
这应该适合你。