首页 > 解决方案 > 停止将数组转换为大型数组的对象

问题描述

我从json从后端检索数据到前端,当我发送小数组时它打印为数组

[[["79.869594371948224,6.9351183796382223"],["79.869644126545694,6.9341375295332206"],.......

当我发送大数组时,它会作为对象打印

{"0":[["81.175402528806714,6.9255110868816949"],["81.1758192226863,6.9248754300773347"],........

我从后端传递了相同格式的结果,为什么大型数组会发生这种情况?如何解决这个问题?

标签: javascriptphparraysjsonobject

解决方案


如果您想知道为什么 json_encode() 将您的 PHP 数组编码为 JSON 对象而不是 JSON 数组,您可能需要仔细检查您的数组键,因为 json_encode() 假定您的数组是一个对象,如果您的键不是连续的。

$foo = array('a','b','c');
print_r(json_encode($foo));
unset($foo[0]);
echo "\n";
print_r(json_encode($foo));
$foo = array_values($foo);
echo "\n";
print_r(json_encode($foo));

/** Output
["a","b","c"]
{"1":"b","2":"c"}
["b","c"]
*/

推荐阅读