1

ハンドルバー付きの JSON オブジェクトを使用して返そうとしています。それを使用する方法を学ぶために小さな todo リストを作成します。

私のPHP APIは次のとおりです:

$query = "SELECT *
          FROM table";
try
{
    $db = getConnection();
    $response = $db->query($query);
    $todo = $response->fetchAll(PDO::FETCH_OBJ);
    $bdd = null;
    echo json_encode($todo);
}

次に、次のようなものを返します。

[{"id":"1","todo":"Do something","who":"Me","is_done":"0"},{"id":"2","todo":"Learn JSON","who":"Me","is_done":"0"}]

しかし、実際には次のようにする必要があります。

{todos: [{"id":"1","todo":"Do something","who":"Me","is_done":"0"},{"id":"2","todo":"Learn JSON","who":"Me","is_done":"0"}]}

PHP APIで代わりに追加しようとしましたecho json_encode($todo)

echo '{todos: ' . json_encode($todo) . '}';

しかし、うまくいきません。何か案は ?

4

4 に答える 4

3

「todos」プロパティ名は二重引用符で囲む必要があります。

echo '{"todos": ' . json_encode($todo) . '}';

JavaScript 構文では引用符なしでプロパティ名を使用できますが、厳密な JSON では引用符を使用する必要があります。

于 2012-06-28T15:30:19.990 に答える
2

Pointyの答えは正しいですが( JSONについて読みたいかもしれません)、代わりにこれを行うこともできます:

echo json_encode(array('todos' => $todo));

PHP 連想配列はオブジェクトとして JSON にシリアル化されます (マニュアルの json_encode() の例)。

于 2012-06-28T15:33:20.547 に答える
1

これを試して:

echo json_encode(array( 'todos' => $todo ));

JSON を自分で作成する代わりに、必要な構造を作成してから、PHP に JSON を作成してもらいます。

于 2012-06-28T15:33:34.760 に答える
1

で試してください:

 echo '{ "todos" : ' . json_encode($todo) . '}';
于 2012-06-28T15:31:34.140 に答える