2009-10-08 6 views
0

json_encode (php funciton) 배열을 사용하여 AJAX를 통해 내 서버에서 응답 양식을받습니다. 그러나 구문 분석하는 데 어려움이 있습니다.PHP에서 JSON 구문 분석 문제

alert(response); 

그러나 그것은 단지 나에게 그렇게 같은 텍스트의 무리 제공 :

나는이 작업을 수행 할 수 있습니다

[{ "USER_ID": "Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03"...... "grouper_opae_algorithm"를 : "nap_v42lp"}]

큰 소리로 잘라냅니다. 나는 이것을 시도했다 :

alert(response[0].user_id); 

그것은 나에게 정의되지 않는다.

내가 뭘 잘못하고 있니? JSON을 구문 분석

답변

5

문자열로 다시 가져 오는 중입니다. 객체로 변환해야합니다.

jQuery 나 Prototype과 같은 라이브러리를 사용하는 경우에는이를 수행 할 수있는 기본 제공 방법이 있습니다. 그렇지 않다면 eval을 사용할 수 있습니다 :

이렇게하면 보안 구멍이 열립니다. JSON에 함수가 삽입되면 실행됩니다.

+2

JQuery를 사용하는 경우 어떻게됩니까? 그거야?()? – Abs

+3

예 getJSON() 메소드를 사용해야합니다. http://docs.jquery.com/Ajax/jQuery.getJSON – Greg

+0

... 다른 작은 따옴표가 필요합니다. (: – peirix

1

가장 기본적인 방법은 평가() 명령입니다 :

json = eval(response); 
alert(json[0].user_id); 

그것은 소스가 신뢰할 수없는 경우 JSON을 소독하기 위해 프로토 타입이나 jQuery를 같은 라이브러리를 사용하는 것이 좋습니다.

+0

소스는 내 자신의 서버를 신뢰할 수있는,하지만 난 JQuery와 사용하는 것을 선호 그의 JSON 구문 분석/캐릭터 라인 화 기능을 사용할 수 있습니다. getJSon() 함수입니까? – Abs

+0

응답 주위에 대괄호가 필요합니다. – Greg