PHPで適切なJSON出力を生成するには、おそらく単純な問題があります。私は以下のコードを使用して、関連するデータフォームをmysqlデータベースとして収集します。PHPを使用した適切なJSON形式
<?php
header('Content-Type: application/json');
$mysqli = new mysqli("localhost", "root", "", "civitas");
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
exit();
}
$events = array();
if ($result = $mysqli->query("SELECT title_hu FROM `events`")) {
while ($row = $result->fetch_assoc()) {
$events[] = $row;
}
echo json_encode($events, JSON_PRETTY_PRINT);
}
$result->close();
$mysqli->close();
コードは次のような出力を生成:
[
{
"title_hu": "Zr\u00ednyi napok s",
"created_at": "2015-08-31 16:26:23"
},
{
"title_hu": "Persona Non Grata 25. sz\u00fclet\u00e9snapi koncert",
"created_at": "2015-08-31 18:12:25"
},
{
"title_hu": "Bek\u00f6lt\u00f6z\u0151s buli",
"created_at": "2015-08-31 18:22:29"
},
{
"title_hu": "as",
"created_at": "2015-08-31 18:29:13"
},
{
"title_hu": "dddd",
"created_at": "2015-08-31 18:29:58"
}
]
をしかし、私はフォーマットは、このする必要があります使用するツールのために:
{
"events":[{
"title_hu":"Teszt hír",
"content":" lorembalblalba ",
"created_at":"2015-08-31 18:29:58"
},
{
"title_hu":"Teszt hír2",
"content":" lorembalblalba ",
"created_at":"2015-08-31 18:29:58"
},
{
"title_hu":"Teszt hír3",
"content":" lorembalblalba ",
"created_at":"2015-08-31 18:29:58"
}
]
}
私は別の配列に結果を入れてみましたが、その場合、JSON出力はデータセットの最初の項目のみを返します。
私は間違っていますか?
を使用
にクエリを変更し、JSONを作成するための、あなたは '$イベント[ 'イベント'] [] = $行で試すことができます;'ループの内側と'$ events ['events']'をループbefore配列として宣言することを忘れないでください。 – prava
この 'json_encode(array( 'events' => $ events)、JSON_PRETTY_PRINT);はあなたのためには機能しませんか? –