我甚至觉得很难受,因为我一直在尝试理解和理解其他人的例子,这就是我想要完成的事情
{
"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输出发生
这是我的currentCode
$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个数组循环的一部分,但我试图了解如何创建更多&#34;深入&#34; 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"
}
]
在我的例子中,我只想拥有&#34; field&#34;成为&#34;鞋帮&#34;包含所有信息的数组的一部分,如上例所示。
答案 0 :(得分:4)
您需要将field
作为父数组添加到数组中。
从
改变echo json_encode($userFields);
向
$json = array('fields' => $userFields);
echo json_encode($json);
答案 1 :(得分:1)
在此特定配置中,您将返回一个具有属性的对象,其属性的值可能是数组。
所以你应该做的是在PHP中创建一个stdClass对象,并为它分配一个&#34; field&#34;的属性。这是一个空数组。然后你可以进入这个数组栈。
$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);