我正在使用php将数组数据格式化为if(str.localeCompare(controlPathDatabaseLoad) == 0)
{
console.log("controlPathDatabaseLoad");
mongoDbHandleLoad();
res.setHeader('Content-Type', 'application/json');
res.writeHead(res.statusCode);
res.write(JSON.stringify(testJSON));
res.end();
}
。这个数组数据来自我的数据库。我已经描述了我在这里的做法
Json_encode
上面的代码给出了以下输出
$pens=$db->fetchAllPens(); //This fetches the list of pens
$a = array();
$response = array();
$response["success"]="true";
while ($pen = mysqli_fetch_array($pens)) {
$response["label"]["id"]=$pen["ID"];
$response["label"]["name"] = $pen["name"];
array_push($a,$response);
}
echo json_encode($a,JSON_PRETTY_PRINT);
但我希望输出低于
[
{
"success": "true",
"label": {
"id": "1",
"name": "nimble"
}
},
{
"success": "true",
"label": {
"id": "2",
"name": "lopsel"
}
}
]
请有办法达到预期的效果。
答案 0 :(得分:2)
$pens = $db->fetchAllPens(); //This fetches the list of pens
$response = array('success' => true, 'label' => array());
while ($pen = mysqli_fetch_array($pens)) {
$response['label'][] = array('id' => $pen['ID'],
'name' => $pen['name']
);
}
echo json_encode($response,JSON_PRETTY_PRINT);
答案 1 :(得分:1)
您在每个循环周期中写入错误的变量。
而是执行以下操作:
while ($pen = mysqli_fetch_array($pens)) {
$data[] = [
'id' => $pen['ID'],
'name' => $pen['Name'],
];
}
$response['label'] = $data;
echo json_encode($response,JSON_PRETTY_PRINT);
答案 2 :(得分:1)
首先将status
直接放入$a
数组。
然后将行数据放入$a['label'][]
,即$a['label']
数组的新出现
$pens=$db->fetchAllPens(); //This fetches the list of pens
$a = array();
$a["success"] = "true";
while ($pen = mysqli_fetch_array($pens)) {
$response = array();
$response["id"] = $pen["ID"];
$response["name"] = $pen["name"];
$a['label'][] = $response;
}
echo json_encode($a,JSON_PRETTY_PRINT);
结果:
{
"success": "true",
"label": [
{
"id": 1,
"name": "fred"
},
{
"id": 2,
"name": "Bill"
}
]
}