一尘不染

PHP数组到Json对象

json

我需要将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"
   }
}

谢谢 :)


阅读 239

收藏
2020-07-27

共1个答案

一尘不染

你想json_encode($json, JSON_FORCE_OBJECT)

JSON_FORCE_OBJECT顾名思义,该标志将json输出强制为一个对象,即使通常将其表示为数组也是如此。

您还可以删除array_push一些更简洁的代码:

$json[] = ['ip' => $ip, 'port' => $port];
2020-07-27