0

PHPでjsonファイルを生成し、サーバーに保存しています。jsonをエクスポートするためのコードは次のとおりです

/**
 * FUNCTIONS TO EXPORT AS JSON
 */
public function expose() {
    return array(
             'guid' => $this->guid,
               'title' => $this->title,
               'folder' => $this->folder,
               'owner' => $this->owner,
                 #'pictures' => json_encode(array_values($this->pictures), JSON_FORCE_OBJECT),
                 'excude' => $this->excude,
                 'added' => $this->added,
                 'lastViewed' => $this->lastViewed,
        );
    #return get_object_vars($this);
}

public function toJSON(){
    return json_encode($this->expose(), JSON_FORCE_OBJECT);
}

ファイルの内容は次のとおりです。

{"guid":"","title":"Sample Gallery","folder":"sampleGallery","owner":"","excude":true,"added":"","lastViewed":" "}

次に、htmlファイルでこれをjqueryでロードしようとしましたが、オブジェクトをコンソールに取得できませんでした

$.getJSON('/files/galleries/index/sampleGallery.gallery', function(data) {
    console.log(data); // works!
var jsonObj = jQuery.parseJSON(data); 
for (key in jsonObj) {
    console.log(key+':'+JSON.stringify(jsonObj[key]));
}
});

json の読み込みが正常に機能することに注意してください。

誰かが私が間違っていることを教えてもらえますか? 前もって感謝します!

4

7 に答える 7

1

parseJSON() を呼び出す必要はありません。beacase データは既にオブジェクトです。

于 2013-01-30T15:18:12.130 に答える
0

データを JSON として返す場合は、再度解析する必要はありません。JQuery はすでにそれを行っています。

$.getJSON('/files/galleries/index/sampleGallery.gallery', function(data) {
    console.log(data); // works!
    for (key in data) {
        console.log(key+':'+JSON.stringify(data[key]));
    }
});
于 2013-01-30T15:17:41.483 に答える
0

getJSON を呼び出すため、データは既に解析されていると思います。dataオブジェクトに直接アクセスし、jQuery.parseJSON(data);呼び出しを避ける必要があります。

于 2013-01-30T15:17:02.393 に答える
0

する必要はありませんvar jsonObj = jQuery.parseJSON(data);jQuery.getJsonは、成功のコールバックを呼び出す前に、返された値を json オブジェクトとして解析します。

あなたのコードは

$.getJSON('/files/galleries/index/sampleGallery.gallery', function(data) {
    console.log(data); // works!
    for (key in data) {
        console.log(key+':'+JSON.stringify(data[key]));
    }
});
于 2013-01-30T15:17:05.730 に答える
0

おそらくdata、解析された JSON (つまり、JavaScript オブジェクト) が含まれています。

JSON を含む文字列であるかのように JavaScript オブジェクトを解析しようとしてもうまくいきません。

解除しvar jsonObj = jQuery.parseJSON(data);てからfor (var key in data) {

于 2013-01-30T15:18:43.027 に答える