"JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. ECMAScript의 하위 집합을 기반으로 합니다. 언어 독립적인 텍스트 형식을 사용하기 때문에 C 언어 계열과 유사한 습관도 사용하며 다음과 같은 특징을 갖습니다. 이러한 특성으로 인해 JSON은 인간이 쉽게 읽고 쓸 수 있고 기계가 쉽게 구문 분석하고 생성할 수 있는 이상적인 데이터 교환 언어입니다(일반적으로 네트워크 전송 속도를 향상시키는 데 사용됨).”
오늘은 jquery의 JSON.parse() 및 JSON.stringify() 함수에 대해 간략하게 이야기하고 싶습니다. 그런데 기본 JS의 eval() 함수에 대해서도 언급하겠습니다
(1) JSON.parse 기능
함수: JSON(JavaScript Object Notation) 문자열을 객체로 변환합니다. 구문: JSON.parse(text [, Revival])
매개변수:
텍스트 필수입니다. 유효한 JSON 문자열입니다.
반환 값: 객체 또는 배열
var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = JSON.parse(json); //解析为JSON对象 document.write(info.name + ' is a student of ' + info.University + ' and he is ' + info.age + " years old."); /info为Object对象
(2) JSON.stringify() 함수
함수: JavaScript 값을 JSON(JavaScript Object Notation) 문자열로 변환구문: JSON.stringify( value [, replacement] [, space])
매개변수:
value 필수, 일반적으로 변환해야 하는 JavaScript 값(일반적으로 객체 또는 배열)
예:
var info = {name:"GDT",age:,University:"GDUT"}; var json = JSON.stringify(info); //转换为JSON字符串 document.write(json); //output为{"name":"GDT","age":23,"University":"GDUT"}
(3) eval() 함수
함수: eval() 함수는 문자열을 계산하고 그 안의 JavaScript 코드를 실행할 수 있습니다.구문: eval(문자열)
매개변수:
string 필수, 평가할 JavaScript 표현식 또는 실행할 명령문이 포함된 평가할 문자열입니다.
예:
eval("x=;y=;document.write(x*y)"); //output为 document.write(eval("+")); //output为 var x=; document.write(eval(x+)); //output为
// JSON.parse() var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = JSON.parse(json); //解析为JSON对象 document.write(info); //output为[object Object] //eval() var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = eval('(' + json + ')'); //解析为JSON对象 document.write(info); //output为[object Object]
이유: eval 자체의 문제 때문입니다. json은 "{}"로 시작하고 끝나기 때문에 JS에서는 명령문 블록으로 처리되므로 강제로 표현식으로 변환해야 합니다. .
alert(eval("{}")); // return undefined alert(eval('('+'{}'+')')); // return object[Object]
var str = '{"a":"b"}'; document.write(eval("("+str+")")); //正常解析为对象 var str = '{"a": (function(){alert("I can do something bad!");})()}'; eval('('+str+')'); //可以用来执行木马脚本
개인적인 요약을 할 시간입니다. 4월 1일 만우절에 탄생한 블로그입니다. 현재 기술이 형편없기 때문에 양해해 주시기 바랍니다. 지금 할 수 있다는 걸 차근차근 쌓아가며 앞으로의 성공을 위한 좋은 기반을 마련해 파이팅~