1

私はjson形式のmysqlデータベースとしてデータを提供するWebサービスを持っています。

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 データを取得したいのですが、実際には成功しませんでした。このjsonの結果を得るには、「PHP Webサービス」をどのように編集する必要がありますか?

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 に答える