>웹 프론트엔드 >JS 튜토리얼 >JSON 및 JavaScript 평가 사용 지침_json

JSON 및 JavaScript 평가 사용 지침_json

WBOY
WBOY원래의
2016-05-16 18:25:061129검색

JSON 형식은 객체, 배열, 값, 문자열 또는 숫자일 수 있습니다.

코드 복사 코드는 다음과 같습니다.

>
참고: http://www.json.org/json-zh.html



JavaScript의 eval 함수를 살펴보겠습니다.
eval 함수는 주어진 JavaScript 코드 문자열을 평가하고 해당 문자열에 포함된 표현식 또는 일련의 합법적인 JavaScript 문을 실행하려고 시도합니다. eval 함수는 마지막 표현식이나 문에 포함된 값이나 참조를 반환합니다.

코드

코드 복사 코드는 다음과 같습니다.
< script type= "text/javascript">
var bar = "bar";
var foobar = eval('"foo" bar')
alert(bar foobar);//문 실행
foobar = eval('if(bar = "bar"){bar = "foo-bar";}else{bar = "bar-foo";}')
alert(foobar); return 문에는


값이 포함됩니다. JSON과 객체 리터럴의 차이점: JSON의 이름 부분은 인용된 이름으로 엄격하게 표시됩니다.
코드

코드 복사 코드는 다음과 같습니다.
🎜>

Ajax의 등장으로 인해 경량 데이터 형식인 JSON이 클라이언트와 서버 간 전송을 위한 형식으로 점차 대중화되고 있습니다. 이때 발생하는 문제는 구축된 JSON 데이터를 어떻게 변환하느냐입니다. 서버 측에서 사용 가능한 JavaScript 객체의 경우 eval 함수를 사용하는 것은 의심할 여지 없이 간단하고 간단한 방법입니다. 변환할 때 JSON 문자열을 정원 괄호 레이어로 래핑해야 합니다.

var jsonObject = eval("(" jsonFormat ")")

정원 괄호를 추가하는 목적은 다음과 같습니다. force eval 이 함수는 JavaScript 코드를 평가할 때 명령문으로 실행되지 않고 괄호 안의 표현식이 객체로 변환되도록 강제합니다. 예를 들어, 객체 리터럴 {}이 외부 대괄호로 묶이지 않은 경우 eval은 중괄호를 JavaScript 코드 블록의 시작 및 끝 표시로 구별하고 {}는 빈 문을 실행하는 것으로 간주됩니다. 따라서 다음 두 가지 실행 결과는 다릅니다.




alert(eval("{}")); //정의되지 않은 반환
alert(eval("({})")) //[객체 개체] 반환


JSON 형식에서 이름 부분에 따옴표를 추가해야 하는 이유는 무엇인가요? eval 함수는 {foo:"bar"}를 표현식이 아닌 합법적인 JavaScript 문으로 해석하기 때문입니다. 그러나 사람들은 종종 eval이 이 코드를 객체로 해석하기를 원합니다. 따라서 JSON 형식에서는 이름 주위에 따옴표를 넣어야 하며 괄호와 함께 사용하면 eval은 JSON을 코드 블록으로 잘못 해석하지 않습니다.
 


//평가 오류 구문 분석 의미
Alert(eval('{foo:"bar"}')); //return "bar",잘못됨
//eval은 JSON을 올바르게 구문 분석합니다.
alert(eval('({"foo": "bar" })'));//JSON 객체 반환, 정확함


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.