我是PHP
开发中的初学者,我对JSON
输出有疑问。
我的JSON
(我的数据库中的元素)以方括号(JSON
数组)开头,如下所示:
[{"Ut_Email":"prova@randomemail.it"}].
不幸的是,我想只看到JSON
对象,如下所示:
{"Ut_Email":"prova@randomemail.it"}
有可能吗?
这是我的PHP
代码:
<!DOCTYPE html>
<html>
<body>
<?php
mysql_connect("localhost","name","")
or die("Impossibile connettersi al server MySQL.\n");
//select the db
mysql_select_db("name")
or die("Impossibile aprire il database.\n");
//create the query
$sql=mysql_query("select Ut_Email from utente");
/*Il metodo "mysql_fetch_assoc" restituisce un array in base alla query
fatta e incrementa il dato*/
while($row=mysql_fetch_assoc($sql))
//inseriamo tutto nella variabile output
$output[]=$row;
/*print the json object*/
print(json_encode($output));
//close the connection
mysql_close();
?>
</body>
</html>
答案 0 :(得分:3)
只是不要循环并摆脱输出数组:
$sql=mysql_query("select Ut_Email from utente");
if($row=mysql_fetch_assoc($sql)){
print(json_encode($row));
}
答案 1 :(得分:0)
您正在将查询结果添加到数组中,以便json输出包含方括号(javascript中的数组)。如果只想输出一行,可以删除while循环,只需调用$row=mysql_fetch_assoc($sql);
,然后在$row
上使用json_encode。如果您需要返回多行,则需要该数组,否则它不是有效的json。
答案 2 :(得分:0)
由于您的SQL查询是在没有任何过滤器的情况下获取用户,因此可以预期该查询的结果会有多个结果。基于此,我会说保留循环并将作业分配给$output
,除非您打算稍后使用它,然后保持原样:
<!DOCTYPE html>
<html>
<body>
<?php
mysql_connect("localhost","name","")
or die("Impossibile connettersi al server MySQL.\n");
//select the db
mysql_select_db("name")
or die("Impossibile aprire il database.\n");
//create the query
$sql=mysql_query("select Ut_Email from utente");
/*Il metodo "mysql_fetch_assoc" restituisce un array in base alla query
fatta e incrementa il dato*/
while($row=mysql_fetch_assoc($sql))
{
//inseriamo tutto nella variabile output
$output[]=$row; // OK if you plan to use $output later, otherwise unnecessary.
/*print the json object*/
print( json_encode( $row ) ); // Just print the $row testing
}
//close the connection
mysql_close();
?>
</body>
</html>