【问题标题】:How to output a JSONArray from a webservice written in PHP如何从用 PHP 编写的 Web 服务输出 JSONArray
【发布时间】:2013-01-25 15:45:04
【问题描述】:

我有一个用 PHP 编写的 Web 服务,它从本地数据库中读取数据并以 JSON 格式输出结果。

但是,我无法将其输出到 JSONArray。

这里是php脚本

<?php
$username = "root";
$password = "";
$hostname = "localhost"; 

$response=array();

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL");

//select a database to work with
$selected = mysql_select_db("test",$dbhandle) 
or die("Could not select test");

//execute the SQL query and return records
$result = mysql_query("SELECT name, country FROM android");

$response["infos"] = array();   

while ($row = mysql_fetch_assoc($result)) {

    $info = array();
$info["name"]=$row["name"];
$info["country"]=$row["country"];

    print(json_encode($info));

}

//close the connection
mysql_close($dbhandle);
?>

这是网络服务的输出

{"name":"develop","country":"mru"}{"name":"fufu","country":"tutu"}  {"name":"chikaka","country":"aceVentura"}

但有人告诉我这不在 JSONArray 中。

我在这里错过了什么?

谢谢

【问题讨论】:

  • 您正在回显多个 json 字符串,而不仅仅是一个。我将添加一个答案来详细说明。

标签: php json web-services


【解决方案1】:

在您的示例中,您正在回显多个 JSON 字符串,因为您的输出代码位于 while 循环中。 JSON 字符串应该只有一个输出。下面的代码将为您提供 JSON 格式的二维数组。

$info = array();

while ($row = mysql_fetch_assoc($result)) 
{
     $arr = array();
     $arr["name"] = $row["name"];
     $arr["country"] = $row["country"];
     $info[] = $arr;
}

echo json_encode($info);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多