2011-12-13 3 views
0

자바 스크립트를 사용하여 JSON/Ajax 개발을 시작했지만 지금은 서버에서 JSON 문자열을받는 시나리오가 있습니다. 고객 입장에서. 내 서버 출력은 이것이다 : 나는이 일을하고있어 JS 측면에서자바 스크립트 - 객체의 JSON 배열에 액세스하는 방법

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

:

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

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

내가 window.User.usernamewindow.User.default를 인쇄 할 수 있습니다. 그러나 나는 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

네 흠, 그것은 참으로 – fge

+0

@fge이다 (제안 ... 당신의 JSON을 고정 후) : 심지어 구문 형광펜가에 동의) – hugomg

0

사용 :

window.User.mine.[0].id

+0

아니, 거기가 shouldn 배열 인덱스 이전의 마침표가 아닙니다. – Guffa

관련 문제