如果PHP数组的键都是数字或者空数组,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。两者在js中的调用是不同的。
事实上,只要在PHP数组的键中有一个字符串形式的键,那么json_encode()就会返回对象形式的Json一个对象,而对象是不可能以数字作为属性名的。
$array = array("name" => "Eric","age" => 23);
echo json_encode($array);
输出为: {"name":"Eric","age":23}
$array = array(0 => "Eric", 1 => 23);
echo json_encode($array);
输出为:["Eric",23]
$array = array();
echo json_encode($array);
输出为:[]
如果需要统计转换为对象类型,那就带上JSON_FORCE_OBJECT参数。
如果不需要转移中文,那就带上JSON_UNESCAPED_UNICODE参数。
$json = json_encode($array,JSON_UNESCAPED_UNICODE|JSON_FORCE_OBJECT);