我正在尝试为客户端从数据库重新创建 json。不幸的是,json 中的一些键是数字,在 javascript 中可以正常工作,但结果 PHP 一直将它们视为数字而不是关联数组。每个键用于一个文档。让我演示给你看:
PHP:
$jsonobj;
while ($row = mysql_fetch_assoc($ms)) {
$key = strval($row["localcardid"]);
$jsonobj[$key] = json_decode($row["json"]);
}
// $jsonobj ist still a numeric array
echo json_encode($jsonobj);
生成的 json 应如下所示:
{
"0": {
"terd": "10",
"id": 0,
"text": "",
"pos": 1,
"type": 0,
"divs": [
{},
{}
],
"front": 1
}
"1": {
"terd": "10",
"id": 0,
"text": "",
"pos": 1,
"type": 0,
"divs": [
{},
{}
],
"front": 1
}
}
一个明显的解决方案是保存整个 json 而不会拆分。然而,关于分贝这似乎并不明智。我希望能够单独访问每个文档。使用
$jsonobj = array ($key => json_decode($row["json"]));
显然有效,但不幸的是只有一个键......
编辑:为了澄清* 在 php 中:有区别
array("a", "b", "c")
和
array ("1" => "a", "2" => "b", "3" => "c").
后者,当这样做时 $array["1"] = "a" 导致array("a")而不是array("1" => "a")
在这里回答