0

私は現在php/html/javascriptプロジェクトに取り組んでおり、jsonでエンコードされたデータを返すphpスクリプトへのajax投稿を行っています。この json エンコード内には、さらに json エンコードされたデータがあります。

以下は、データをjsonでエンコードする方法です

$category[0]['Category'] = "Category 1";
    $category[1]['Category'] = "Category 2";

    $article['Date'] = "11/11/2012 22:42:00";
    $article['Title'] = "This is the title";
    $article['Subtitle'] = "This is the subtitle";
    $article['Content'] = "This is the content1";
    $article['ViaName'] = "SomeSite";
    $article['ViaAddress'] = "http://localhost";
    $article['SourceName'] = "N/A";
    $article['SourceAddress'] = "N/A";
    $article['categories'] = json_encode($category);

    echo json_encode($article);

json エンコードされた $article は、json.Title、json.Subtitle などを使用して javascript に返されると、正常にアクセスできます。

しかし、カテゴリを取得しようとすると、機能しません。

json.categories を使用してみましたが、次のように出力されます。

[{"Category":"Category 1"},{"Category":"Category 2"}]

これは機能しているように見えるので、個々のパーツにアクセスしようとすると機能しません。試してみましjson.categories[0].Categoryjson.categories.Category[0]が、未定義のエラーが発生し続けます。

ご協力いただきありがとうございます。

4

3 に答える 3

1

配列をエンコードすると、json_encodeが得られますstring。したがって、あなたの場合、json.categoriesは文字列であり、配列ではありません。

ただし、json_encode(およびデコード)は再帰的です。

だからあなたは単に使うべきです

$article['categories'] = $category;

再度エンコードせずに。

于 2012-11-11T22:55:04.763 に答える
0

待てない。配列を別の配列の値にjsonエンコードしており、これもエンコードされます。あなたはただするべきです:

$article['categories'] = $category;
于 2012-11-11T22:55:10.870 に答える
0

カテゴリjson配列をarticle配列に追加して、article変数でアクセスします

$article['categories'] = $category;
于 2012-11-12T00:24:07.173 に答える