2011-12-13 16 views
0

Javascriptを使用したJSON/Ajax開発から始まっていますが、今ではサーバーからJSON文字列を受け取るシナリオがあります。クライアント側。私はwindow.User.usernamewindow.User.defaultを印刷することができJavascript - オブジェクトのJSON配列にアクセスする方法

$.getJSON('?action=load', 
     function(data) 
     { 

       window.User = data[0]; 
     }); 

:私はこれをやっているJS側で

[{"username":"user","mine":"[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}]","default":"50"}] 

: 私のサーバー出力はこれです。しかし、私はalert(window.User.mine[0].id)のようなこともできると期待していましたが、[(曲の配列の最初の文字なので、文字列として解釈されていると仮定しています)。 私はここで間違っていますか?

ありがとうございます。

答えて

2
"[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}]" 

があるべき予想される結果を取得します。この

[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}] 

配列の前後に引用符は、それらを作ります文字列

2

JSONの形式が正しくないため、配列ではなく文字列が取得されます。理由はそのためです。

あなたのJSONは次のようになります。

[{"username":"user","mine":[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}],"default":"50"}] 

をして、あなたが

+0

(...示唆したように、あなたのJSONを固定した後は)うーん、はい、それは確かに – fge

+0

@fgeです:でも、シンタックスハイライトは、その上で同意する;) – hugomg

0

用途:

window.User.mine.[0].id

+0

いや、そこshouldn配列インデックスの前のピリオドではありません。 – Guffa

関連する問題