2013-04-14 2 views
8

게시 요청의 응답에서받은 중첩 된 객체로 JSON 문자열을 구문 분석하려고합니다.JSON.parse JSON을 중첩 된 객체로 구문 분석

[{ 
    "atco":"43000156407", 
    "location":{ 
    "longitude":"-1.7876500000000000", 
    "latitude":"52.4147200000000000"," 
    timestamp":"2013-03-19 11:30:00" 
    }, 
    "name":"Solihull Station Interchange", 
    "road":"STATION APPROACH", 
    "direction":"NA", 
    "locality":"Solihull", 
    "town":"Solihull"}, ... 

가 난 다음 예제로 다음을 사용하여 수 풀 값 나올 것이라고 생각하지만, 내가 할 모든은 정의되지 않습니다 : JSON.parse(responseText)를 실행 한 후, 그 결과는 다음과 같은 형식으로되어 있습니다.

var atco = json[0].atco; 

는 또한 json[0][0]을 시도했다 그러나 그것은 JSON ( [)에서 개별 문자를 반환합니다. 이것은 JSON이 올바르게 구문 분석되지 않았 음을 나타내습니까? 아니면이 예상되는 동작이며 잘못 참조 한 것입니까?

+0

어떻게 파싱하는지 인용해야합니다. JSON이 실제로 표시된 경우 'json [0] .atco'는 배열의 첫 번째 항목의 'atco' 속성에 액세스하는 올바른 방법입니다. 그래서 우리에게 잘못된 일이 무엇인지 추측 할 수있게 해줍니다. 이는 아무에게도 유용하지 않습니다. :-) –

+0

compelete json 스크립트를 써주세요. – ncm

+0

json이 당신이 작성한 것처럼 그 객체를 참조한다면, 그것은 작동 할 것입니다 : http://jsfiddle.net/XmchJ/ 다른 일이 벌어지고 있습니다, 나는 "나는 아닙니다"라고 생각했습니다 –

답변

10

즉, JSON이 이중으로 인코딩되었음을 의미합니다. 서버에서 한 번만 인코딩해야합니다.

증명으로, 구문 분석 한 후에 다시 구문 분석하십시오.

var parsed = JSON.parse(resposneText); 

var parsed2 = JSON.parse(parsed); 

alert(parsed2.atco); 

어느 쪽이든, 또는 당신은 그것을 구문 분석하지만 원래 문자열에서 데이터를 선택하기 위해 노력하고 있습니다. 이것은 분명히 작동하지 않을 것입니다.

+0

고마워, 그랬어. PHP 스크립트에서 이중으로 인코딩됩니다. – Dannyboy1430

+0

@ Dannyboy1430 : 천만에요. –

관련 문제