2012-03-01 5 views
1

문자열의 JSON을 해제하는 기능이 있습니까? JQuery에 내장되지 않을 것이라고 추측하지만 String을 조작하는 스크립트를 작성하여 제거 할 수 있습니까? 나는 이것을 다음과 같이 만난다.Un-JSON a String

NYTimes API를 사용하고 있지만 JSONP를 지원하지 않으므로이를 액세스 할 수있는 대안을 찾으려고합니다. 이 스크립트가 실행될 상황에 따라 서버 측 프록시를 사용할 수 없습니다. YQL here을 시도하고 있지만 반환 된 텍스트는 정말 엉망입니다. 이것은 JSON 텍스트를 String으로 사용하므로 JSON 구문 분석 기능을 사용할 수 없습니다. 즉, YQL에 의해 반환 된 텍스트는 JSON의 JSON입니다.

자세한 내용은 this question을 참조하십시오.

+1

'result'는 JSON입니다. 당신은'JSON.parse' :'var obj = JSON.parse (result);'를 사용하여 그것을 파싱 할 수 있습니다. 그런 다음'obj.query.results.p'는 JSON을 다시 포함합니다. 'JSON.parse'로 파싱 할 수 있습니다 :'var p = JSON.parse (obj.query.results.p);'등등 ... 문자열이 있고 JSON을 포함하고 있다면'JSON.parse '. 항상. 'JSON.parse'를 사용할 수 없다면 다음 라이브러리를 포함 시키십시오 : https://github.com/douglascrockford/JSON-js –

+0

그건 작동하지 않습니다. [Jsfiddle] (http://jsfiddle.net/3NdEY/6/)을 참조하십시오. 그냥'[object Object]'를 반환합니다. –

+2

예, 객체의 기본 문자열 표현입니다 (즉 ** ** 작업을 의미 함). 어떤 물건이 보이기를 기대합니까? 더 나은 디버깅 방법은'console.log'입니다 : http://jsfiddle.net/3NdEY/7/ (Chrome을 사용하여 콘솔을 엽니 다). 개체의 속성에 액세스 할 수 있습니다. 예 : http://jsfiddle.net/3NdEY/8/ –

답변

2

하면 JSON.parse을 원하지 않는 경우

var myObject = eval('(' + myJSONtext + ')'); 
+0

OP가 "JSON 구문 분석 기능을 사용할 수 없습니다."라고 쓰여서 읽었 기 때문에 대답했습니다. 이유를 실제로 이해할 수는 없지만 그 점을 분명히했습니다. –

+1

명확히 설명해 드리겠습니다. 잠시만 기다려주세요. 덕분에 –

0

를 사용하려고 노력하지만, 당신이 JQuery와 방법을 찾고, 당신은 사용할 수 있습니다

$.parseJSON(jsonString); 
+0

이것은 아주 불안정한 순진한 방법입니다. 'myJSONtext'가 악의적 인 사람에 의해 변경되어 alert ('hacked') "'와 같다고 봅니다. – pimvdb

2

을 시도 JSON.parse() 방법

관련 문제