1

我有一个网络服务,它以 json 形式的 mysql 数据库提供数据。

PHP 网络服务

<?php
    $conn = mysql_connect('localhost','root','');
    mysql_select_db('db', $conn);
    $query = mysql_query("SELECT id,group FROM faq");
    //$query content is:
    // Array ([id]=>faq1 [group]=>hardware) Array ([id]=>faq2 [group]=>software) 

    $faq = array();
    while($row = mysql_fetch_assoc($query)) {
        $faq[] = $row // <= ????????
    }

    header('Content-type: application/json');
    return json_encode($faq);
?>

我得到的 JSON 输出

[
    {
        "id": "faq1",
        "group": "hardware"
    },
    {
       "id": "faq2",
       "group": "software"
    }
]

我想要的 JSON 输出

[
    {
        "id": "faq1",
        "group": {
            "id": "hardware"
        }
   },
   {
       "id": "faq2",
       "group": {
            "id": "software"
       }
   }
]

我想得到这个 JSON 数据作为结果,但我真的无法成功。那么我应该如何编辑我的“PHP webservice”来获得这个json结果呢?

4

4 回答 4

5
$faq = array();
while($row = mysql_fetch_assoc($query)) {
   $faq[] = array(
      'id' => $row['id'],
      'group' => array(
         'id' => $row['group']
       )
   );
}
于 2013-05-17T14:16:03.627 回答
2

首先这样做:

$row['group'] = Array('id' => $row['group']);
于 2013-05-17T14:15:21.773 回答
1

像这样构造数组

$arr = array();
$id = 0;
while($row = mysql_fetch_assoc($query)) {
    $arr[$i]['id'] = $row['id'];
    $arr[$i]['group']['id'] = $row['group'];
    $i++;
}

$json = json_encode($arr);
于 2013-05-17T14:15:56.703 回答
0

尝试这个 :

$arrayJson["id"] = $row["id"];
$arrayJson["group"]["id"] = $row["group"];
echo json_encode($arrayJson)
于 2013-05-17T14:17:15.467 回答