我试图从 PHP 输出中获取一个 JSON 数组,它从数据库中获取多个值并转换为 JSON 数组。PHP代码如下:php$result = $conn->query("SELECT dbname FROM users ORDER BY dbname ASC");//defined second array for dbnames' list$dblist = array();while($row = $result->fetch_assoc()){ //array_push($response['dblist'],$row['dbname']); $dblist = array('name'=>$row['dbname']);}$response['dblist'] = $dblist;echo json_encode($response);它提供以下输出:JSON{"dblist":["a","arsod"]}但是,为了从 JSON 中提取值,所需的数组类似于:json{"dblist":{"name":"a","name":"arsod"}}我怎样才能做到这一点?我想在 android 应用程序中获取这些值。
2 回答
绝地无双
TA贡献1946条经验 获得超4个赞
你的错误是一个常见的错误,基本上只影响这一行:
$dblist = array('name'=>$row['dbname']);
$dblist
在每次迭代中设置为新创建的数组。您想要做的是在每次迭代时向列表添加一个新条目
$entry = array('name'=>$row['dbname']); array_push($dblist, $entry);
这是相同的,作为
$entry[] = array('name'=>$row['dbname']);
慕哥9229398
TA贡献1877条经验 获得超6个赞
尝试这个:
$result = $conn->query("SELECT dbname FROM users ORDER BY dbname ASC");
$dblist = [];
while($row = $result->fetch_assoc()){
$dblist[] = ['name'=>$row['dbname']];
}
$response['dblist'] = $dblist;
echo json_encode($reposne);
我基本上将 [] 添加到 $dbList 所以它看起来像 $dbList[] = ...
有了这个,您将获得一个有效的 JSON,如下所示:
{"dblist":[{"name":"a"},{"name":"b"}]}
由于您请求的输出不是一个好主意,因为您将在 JSON 中有重复的键
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消