2012-02-15 9 views
0

json에이 작은 문제가 있습니다.jQuery를 사용하여 JSON 데이터 처리

//real json 
var json1 = {"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"}; 
alert(json.test1); // will echo TEST1 
//string, so javascript treat it like a String not JSON 
var json2 = "{"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"}"; 
alert(json2.test1); // wrong 

이제 JSON과 같은 문자열을 실제 JSON으로 변환 할 수있는 기능이나 방법이 있습니까? ,

var jsonObj = jQuery.parseJSON(jsonString); 

은 물론,이에 대한 jQuery를 필요가 없습니다

var real_json = eval(json2); 
+0

이 또한 다른 방법으로 예를 들면, 실제로 유효 이것이 jQuery와 어떤 관련이 있습니까? – Phil

+0

jQuery에서이 문제를 해결할 수있는 방법이 있어야하고 jQuery.parseJSON이 방법이라고 생각했기 때문에! – castiel

+0

** 처음 경고 코드에 작은 오타가 남음 **'var json1 = { "test1": "TEST1", "test2": "TEST2", "test3": "TEST3", "test4": "TEST4"} ; // json1 alert (json1.test1)로 변경; // TEST1을 echo 할 것입니다. –

답변

1

당신의 문자열을 가정

var json2 = '{"test1":"TEST1","test2":"TEST2","test3":"TEST3","test4":"TEST4"}'; 

사용

var jsonObj = JSON.parse(json2); 
alert(jsonObj.test1); 
1

당신은 평가() 함수를 사용할 수 있습니다 당신은이와 같은 일을 수행 할 수 있습니다 :

var jsonObj = JSON.parse(jsonString); 

OU 이론은 explained here, 당신도 확인하실 수 있습니다 t jQuery.parseJSON documentation 페이지

+0

나는 이것을 시도했습니다. 구문 오류 예기치 않은 토큰 : – castiel

+1

'eval ('('+ json2 + ')')'시도. 그리고'json2' 문자열이 코드에서 올바르게 이스케이프 처리되었는지 확인하십시오 (예제에서는 아닙니다). –

+2

eval은 모든 자바 스크립트 코드를 처리하기 때문에 큰 보안 구멍을 열어 둡니다. 전달하는 문자열이 json이 아닌 경우 문제가 발생할 수 있습니다. – BenjaminRH

2

가 jQuery를 함께 할 수있는 매우 간단한 방법이 있습니다 :

+0

덕분에 매우 감사합니다 – castiel

0

점검 (작은 따옴표를주의) JSON 구문 분석

var json2 = "{"+'"test1"'+":"+'"TEST1"'+","+'"test2"'+":"+'"TEST2"'+","+'"test3"'+":"+'"TEST3"'+","+'"test4"'+":"+'"TEST4"'+"}"; 

     var jsonObj = $.parseJSON(json2); 
     alert(jsonObj.test1); 
관련 문제