猿问

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

我试图从 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 应用程序中获取这些值。


PIPIONE
浏览 171回答 2
2回答

绝地无双

你的错误是一个常见的错误,基本上只影响这一行:$dblist = array('name'=>$row['dbname']);$dblist在每次迭代中设置为新创建的数组。您想要做的是在每次迭代时向列表添加一个新条目$entry = array('name'=>$row['dbname']); array_push($dblist, $entry);这是相同的,作为$entry[] = array('name'=>$row['dbname']);

慕哥9229398

尝试这个:$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 中有重复的键
随时随地看视频慕课网APP
我要回答