2

私はphp json_encode関数を使用してJsonに変換した一連の結果を持っています。この結果をjsの配列として欲しいのですが、これを行うアイデアがありません。

私のPHP配列は次のようなものです:

Array
(
    [latestRating] => Array
        (
            [456] => Anonymous has rated xxx9
            [457] => Anonymous has rated xxxx8
            [458] => Anonymous has rated xxxx3.5
        )

    [latestUser] => Array
        (
            [242] => xxxxhas just signed up
            [243] => xxxxxhas just signed up
            [244] => xxxxxxhas just signed up
        )

)

これでphp json_encode関数を実行すると、次の文字列が得られます

{"latestRating":{"456":"Anonymous has rated mermaidbl00d 9","457":"Anonymous has rated GeorgiaHallx 8","458":"Anonymous has rated smithjhon 3.5","459":"Anonymous has rated Emilyxo 8.5","460":"Anonymous has rated leona 10","461":"Anonymous has rated leona 10","462":"Anonymous has rated W0rthlessliar 8","463":"Anonymous has rated Yousamsuck 9","464":"Anonymous has rated Aimeeerobbb 9","465":"Anonymous has rated lauramillerx 10","466":"Anonymous has rated tomwaz 1","467":"Anonymous has rated W0rthlessliar 1","468":"Anonymous has rated W0rthlessliar 1","469":"Anonymous has rated W0rthlessliar 1","470":"Anonymous has rated W0rthlessliar 1"},"latestUser":{"242":"rhiwilliamsx has just signed up","243":"W0rthlessliar has just signed up","244":"rebeccaronan has just signed up"}}

JSON.stringify を使用してから、jQuery.makeArray も使用して配列を作成しようとしました。次に、 eval('['+string+']') を試しましたが、どれも役に立ちませんでした。

私はJsonの初心者であり、適切なサポートも見つけることができませんでした。

よろしくヒマンシュ・シャルマ。

4

2 に答える 2

3

JSON.parse()の代わりに使用しJSON.stringifyます。
最初は JavaScript の PHP のjson_decodeに相当し、後者は に相当しjson_encodeます。

注: with を使用jQuery.ajaxしている場合dataType: 'json'、コールバックのパラメーターは既にデコードされたオブジェクトです。

あなたのコードでは、PHP の「配列」は JavaScript 配列ではなく、オブジェクトです。

于 2012-05-07T18:57:17.860 に答える
2

を使用している場合は、すでに準備が整っているはずです。使用しjson_encode()ていない場合は、 を使用してJSON.parse()ください。含めるデータをエコーするときに、PHP ヘッダーを確認することもできます。

header('Content-type: application/json');

ajax 応答から返された場合は、次のようにオブジェクトを参照します。

success : function(data) {
    console.log(data.latestRating);
}
于 2012-05-07T18:57:01.017 に答える