将php数组转换为单个JSON对象
我在如何将php数组转换为JSON对象方面遇到了问题。无论我尝试什么,我要么将所有内容打印为多个对象,要么将其显示为空。将其包装在将php数组转换为单个JSON对象,php,json,Php,Json,我在如何将php数组转换为JSON对象方面遇到了问题。无论我尝试什么,我要么将所有内容打印为多个对象,要么将其显示为空。将其包装在pre-tags中,以下是我得到的最接近的内容: 我的代码: $content = mysqli_query($dbcon, "SELECT title, last_name AS lastname FROM revision, field_last_name WHERE vid = entity_id;" ); echo "<pre>
pre-tags
中,以下是我得到的最接近的内容:
我的代码:
$content = mysqli_query($dbcon,
"SELECT title, last_name AS lastname
FROM revision, field_last_name
WHERE vid = entity_id;"
);
echo "<pre>";
while($row = mysqli_fetch_array($content))
{
print json_encode($row);
print '<br/>';
}
echo "</pre>";
我的两个问题是:
1) 为什么在我的对象中有一个“0”:“John Apple”
和一个“1”:“Apple”
,而我想要的只是“title”:“John Apple”
和“lastname”:“Apple”
2) 为什么所有东西都显示为多个对象
谢谢
---编辑---
$arr=array()
echo”“;
while($row=mysqli\u fetch\u assoc($content))
{
$arr[]=$row;
}
打印$arr;
回声“;
更改此选项:
$myarray = array();
while($row = mysqli_fetch_assoc($content))
{
$myarray[] = $row;
print '<br/>';
}
print json_encode($myarray);
…因为您正在打印多个对象。如果您想要一个单一的对象,它是一个数组,那么您需要将
mysql\u fetch\u assoc
(请参阅涵盖字段名与位置的其他答案)的结果附加到一个数组中,然后json\u encode
一次完成该数组。例如:
$myarray=array();
while($row=mysqli\u fetch\u assoc($content))
{
$myarray[]=$row;
打印“
”;
}
打印json_编码($myarray);
field\u last\u name是您的表名吗?您能否通过查询中的表名(如revision.title)来区分每个列名前缀,并在单个数组中获取所有数据,然后对其进行json_编码
$content=mysqli\u查询($dbcon,
“选择标题、姓氏作为姓氏”
从修订版,字段\姓氏\名称
其中vid=实体_id;”
);
$arr=array();
回声“;
while($row=mysqli\u fetch\u assoc($content))
{
$arr[]=$row;
}
打印(json编码($arr));
回声“;
因为您在while循环中调用它,它将对每一行进行json编码。field\u last\u name是您的表名吗?您能否通过查询中的表名(如revision.title)来区分每个列名前缀,并在单个数组中获取所有数据,然后对其进行json_编码?这只会打印出一行并停止,不是一个数组对象中的所有行。我已经研究了您所说的,在列名前面添加表名不会改变我的结果。使用您提供的while循环刚刚为我生成了一个空白的白色屏幕。请查看我在上面所做的编辑。您可以在while循环中打印r($row)吗?让我知道你得到了什么?这似乎已经做到了,但我不明白你改变了什么使它工作?“你能解释一下吗?”替罪羊17:这是第一次。我们应该使用print\u r或var\u dump来打印数组,因为您并没有看到结果。你一个接一个地打印数组。如果成功了,那就接受吧:)哈哈,我会接受的,但我还是不明白你是怎么回答我的第一个问题的。你能详细说明一下吗?更改为mysql\u fetch\u assoc只会给我显示一个空白的白色屏幕。请查看我在上面对我的问题所做的编辑。任何时候出现空白屏幕时,请检查您的错误日志。一个空白的屏幕意味着脚本死了。假设您的编辑是逐字进行的,则缺少分号。
echo "<pre>";
while($row = mysqli_fetch_assoc($content))
{
$arr[] = $row;
}
print $arr;
echo "</pre>";
while($row = mysqli_fetch_array($content))
{
print json_encode($row);
print '<br/>';
}
$row = mysqli_fetch_assoc($content);
json_encode($row);
$myarray = array();
while($row = mysqli_fetch_assoc($content))
{
$myarray[] = $row;
print '<br/>';
}
print json_encode($myarray);
$content = mysqli_query($dbcon,
"SELECT title, last_name AS lastname
FROM revision, field_last_name
WHERE vid = entity_id;"
);
$arr = array();
echo "<pre>";
while($row = mysqli_fetch_assoc($content))
{
$arr[] = $row;
}
print_r(json_encode($arr));
echo "</pre>";