对于函数json_decode()
,有 2 个输出选项,JSON 对象或数组。
$obj = json_decode($json_string, false);
或者
$array = json_decode($json_string, true);
哪种类型的性能更好?
对于函数json_decode()
,有 2 个输出选项,JSON 对象或数组。
$obj = json_decode($json_string, false);
或者
$array = json_decode($json_string, true);
哪种类型的性能更好?
对于函数json_decode()
,人们可能会在将结果输出为对象或关联数组之间纠结。在这里,我进行了基准测试。
使用的代码($json_string
Google Maps V3 Geocoding API 的 JSON 输出在哪里):
// object
$start_time = microtime(true);
$json = json_decode($json_string, false);
echo '(' . $json->results[0]->geometry->location->lat . ',' . $json->results[0]->geometry->location->lng . ')' . PHP_EOL;
$end_time = microtime(true);
echo 'JSON Object: ' . round($end_time - $start_time, 6) . 's' . PHP_EOL;
// array
$start_time = microtime(true);
$json = json_decode($json_string, true);
echo '(' . $json['results'][0]['geometry']['location']['lat'] . ',' . $json['results'][0]['geometry']['location']['lng'] . ')' . PHP_EOL;
$end_time = microtime(true);
echo 'JSON Array: ' . round($end_time - $start_time, 6) . 's' . PHP_EOL;
我发现 Array 比 Object 快 30% ~ 50%。