我需要将PHP数组转换为json,但我没有得到我期望的结果。我希望它是一个可以轻松使用数字索引导航的对象。这是一个示例代码:
$json = array(); $ip = "192.168.0.1"; $port = "2016"; array_push($json, ["ip" => $ip, "port" => $port]); $json = json_encode($json, JSON_PRETTY_PRINT); // ----- json_decode($json)["ip"] should be "192.168.0.1" ---- echo $json;
这就是我得到的
[ [ "ip" => "192.168.0.1", "port" => "2016" ] ]
但是我想得到一个对象而不是数组:
{ "0": { "ip": "192.168.0.1", "port": "2016" } }
谢谢 :)
你想json_encode($json, JSON_FORCE_OBJECT)。
json_encode($json, JSON_FORCE_OBJECT)
JSON_FORCE_OBJECT顾名思义,该标志将json输出强制为一个对象,即使通常将其表示为数组也是如此。
JSON_FORCE_OBJECT
您还可以删除array_push一些更简洁的代码:
array_push
$json[] = ['ip' => $ip, 'port' => $port];