即使问我也觉得很糟糕,因为我一直在努力理解和理解其他人的例子——这就是我正在努力实现的
{
"field": [
{
"appid": 0,
"page": 0,
"fieldname": "Sweet",
"value": "Tammy Howell"
},
{
"appid": 1,
"page": 1,
"fieldname": "Cecilia",
"value": "Shana Jordan"
},
{
"appid": 2,
"page": 2,
"fieldname": "Merritt",
"value": "Copeland Pena"
}
]
}
在执行SQL SELECT语句时,我需要能够实现上述JSON输出
这是我当前的代码
$x = 0;
$userFieldsResult = mysqli_query($database_id, "SELECT * FROM theDB.DynamicFields ORDER BY Page, Priority") or die (mysqli_error($database_id));
if (mysqli_num_rows($userFieldsResult)<=0)
{
echo "nothing found";
exit;
} else
{
while($row = mysqli_fetch_array($userFieldsResult))
{
$userFields[$x]['appid'] = $row['appid'];
$userFields[$x]['page'] = $row['page'];
$userFields[$x]['fieldname'] = $row['fieldname'];
$userFields[$x]['value'] = $row['value'];
$x++;
}
echo json_encode($userFields);
exit;
}
echo json_encode($userFields);
这通常是我输出json的方式,所以它们只是1个数组循环的一部分,但我正在努力了解如何创建更"深入"的json数组,以便在列出信息之前有一个特定的标识符。
[
{
"appid": 0,
"page": 0,
"fieldname": "Sweet",
"value": "Tammy Howell"
},
{
"appid": 1,
"page": 1,
"fieldname": "Cecilia",
"value": "Shana Jordan"
},
{
"appid": 2,
"page": 2,
"fieldname": "Merritt",
"value": "Copeland Pena"
}
]
在我的例子中,我只想让"字段"成为数组的"上部",它保存了上面例子中显示的所有信息。
您需要将field
作为父数组添加到数组中。
的变化
echo json_encode($userFields);
进入
$json = array('fields' => $userFields);
echo json_encode($json);
在这个特定的配置中,将返回一个具有属性的对象,其中属性的值可能是一个数组。
因此,实际应该做的是在PHP中创建一个stdClass对象,并为其分配一个空数组"field"属性。然后你就可以推入这个数组堆栈了。
$obj = new stdClass();
$obj->fields = array();
while(....){
$obj->fields[$x]['appid'] =
$obj->fields[$x]['appid'] = $row['appid'];
$obj->fields[$x]['page'] = $row['page'];
$obj->fields[$x]['fieldname'] = $row['fieldname'];
$obj->fields[$x]['value'] = $row['value'];
}
现在您可以对对象进行json编码并返回它
echo json_encode($obj);