eval() 및 JSON.parse()의 차이점
만약 우리가 json 형식의 문자열을 가지고 있다면:
'{
"student" : [
{"name":" ","age":17},
{"name":" ","age":17},
{"name":" ","age":17}
]
}'
그리고 json 대상으로 해석해야 돼요.
1. eval() 코드는 다음과 같습니다.
var data = '{"student" : [{"name":" ","age":17}, {"name":" ","age":17},{"name":" ","age":17}]}';
eval('(' + data + ')');
2、JSON.parse() 코드는 다음과 같습니다.
var data = '{"student" : [{"name":" ","age":17}, {"name":" ","age":17},{"name":" ","age":17}]}';
JSON.parse(data);
차이점: eval 방법은 주어진 문자열이 json 형식에 맞는지 검사하지 않습니다. 또한 주어진 문자열에 js 코드가 존재하면 eval도 함께 실행합니다. 예를 들어 위의 json 형식의 문자열이 다음과 같이 바뀌면: (빨간색 부분 주의)
var data = '{"student" : [{"name":" ","age":17}, {"name":" ","age":alert("hehe")},{"name":" ","age":17}]}';
이 때 eval 방법을 실행하면 알림 상자가hehe의 문자열을 출력합니다 ~
하지만 JSON을 사용합니다.parse () 는 오류를 보고합니다. 현재 문자열이 json 형식에 맞지 않습니다. 즉 JSON입니다.parse () 방법은 변환할 문자열이 json 형식에 맞는지 확인합니다 ~
비교해 보면 eval 방법은 매우 위험하다. 특히 제3자가 관련될 때 우리는 eval에 전달된 매개 변수가 우리가 제어할 수 있다는 것을 확보해야 한다. 그렇지 않으면 안에 window와 같은 것을 삽입해야 한다.location~ 악의적인 연결을 가리키는데 그걸 하늘이라고 하죠.
그런 면에서 JSON을 추천합니다.parse는 json 형식 문자열의 해석을 실현합니다
json 형식의 문자열을 만들 때 오류가 발생하기 쉽다는 것을 감안하여 ~ json 형식의 문자열을 온라인 검사 도구로 추천합니다.http://jsonlint.com/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.