为了账号安全,请及时绑定邮箱和手机立即绑定

如何以键:值格式编写JSON数组

如何以键:值格式编写JSON数组

PHP
PIPIONE 2021-10-15 16:12:02
我试图从 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']);


查看完整回答
反对 回复 2021-10-15
?
慕哥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 中有重复的键


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信