PHP中的json问题总结
PHP中的json_encode会将一个带有键值的数组编码成一个对象,其实我们期望编码后的值依然是数组,结果导致js无法正常解析。
记得以前在网上看到过这样的总结,但忘记出处了,更忘记记下来了。于是又一次查询PHP手册。浪费时间呀。汗
if your keys are not sequential,Use array_values() to re-index the array。
如果你的键值不是连续的,使用array_values重建数组索引。
解决方法:json_encode(array_values($array));
记得以前在网上看到过这样的总结,但忘记出处了,更忘记记下来了。于是又一次查询PHP手册。浪费时间呀。汗
If, for some reason you need to force a single object to be an array, you can use array_values() -- this can be necessary if you have an array with only one entry, as json_encode will assign it as an object otherwise :
<?php
$object[0] = array("foo" => "bar", 12 => true);
$encoded_object = json_encode($object);
?>
output:
{"1": {"foo": "bar", "12": "true"}}
<?php $encoded = json_encode(array_values($object)); ?>
output:
[{"foo": "bar", "12": "true"}]
<?php
$object[0] = array("foo" => "bar", 12 => true);
$encoded_object = json_encode($object);
?>
output:
{"1": {"foo": "bar", "12": "true"}}
<?php $encoded = json_encode(array_values($object)); ?>
output:
[{"foo": "bar", "12": "true"}]
if your keys are not sequential,Use array_values() to re-index the array。
如果你的键值不是连续的,使用array_values重建数组索引。
解决方法:json_encode(array_values($array));