ECMA-262(E3)은 JSON 개념을 표준으로 작성하지 않습니다. 다행히 JSON의 개념은 ECMA-262(E5) 전역 JSON 개체와 Date의 toJSON 메서드를 포함하여 공식적으로 도입되었습니다.
1. 평가 방법이 파싱됩니다. 이것이 가장 초기의 파싱 방법입니다.
function strToJson(str){
var json = eval('(' str ')');
return json;
}
str의 양쪽에 괄호를 잊지 마세요.
2. 새로운 함수 형식이 꽤 이상합니다. 다음과 같습니다
function strToJson(str){
var json = (new Function("return " str))();
return json;
}
3, 다음과 같이 전역 JSON 개체를 사용합니다.
function strToJson(str){
return JSON.parse(str);
}
현재 IE8(S)/Firefox3.5/Chrome4/Safari4/Opera10에서 이 방법을 구현했습니다.
http ://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx
https://developer.mozilla.org/en/Using_JSON_in_Firefox
JSON.parse 사용은 JSON 사양을 엄격히 준수해야 합니다. 예를 들어 속성은 다음과 같이 따옴표로 묶어야 합니다.
var str = '{name:"jack"}'
var obj = JSON.parse(str); // --> 구문 분석 오류
name은 따옴표로 묶이지 않았습니다. 이제 JSON.parse를 사용하면 모든 브라우저에서 예외가 발생하고 구문 분석이 실패합니다. 처음 두 가지 방법은 괜찮습니다.
참조:
Chrome에서 JSON.parse의 특수 구현