본문 바로가기

JSON/JSON 01, Object Creation

JSON, Object Creation

JSON객체의 생성 및 문자열변환, 문자열에서 JSON객체 파싱의 예
json2.js
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>JSON객체 생성 및 문자열 변환, 문자열에서 JSON객체 파싱</title>
<script type="text/javascript" src="./json2.js"></script>
</head>
<body>
<script>
 /* JSON객체 생성 */
 var jsonObj = {"name":"박지성", "phone":"345-764-567"};
 var name = jsonObj.name;
 document.writeln("1. "+name +"<br/>");
 /* JSON 객체의 내용을 보통 텍스트 문자열로 추출한다, json2.js가 필요함 */
 var jsonText = jsonObj.toJSONString(); // json2.js required!
 document.writeln("2. "+jsonText +"<br/>");
 
 /* JSON포맷 문자열을 이용하여 JSON객체를 생성한다 json2.js가 필요함 */
 var jsonObj2 = jsonText.parseJSON();
 document.writeln("3. "+jsonObj2.toJSONString() +"<br/>");
 
/* JSON 파서(json2.js)가 없다면 다음과 같은 방법으로 문자열을 JSON객체로 변환할 수 있다 */
 jsonText = "{empno:10,ename:'SMITH',dept:'개발팀'}";
 jsonObj = eval('('+jsonText +')');
 alert(jsonObj.ename);

 /* JSON객체가 생성된 후에도 새로운 속성을 추가할 수 있다 */
 jsonObj.email="park@korea.com";
 document.write("4. "+jsonObj.email +"<br/>");
 
 /* 중괄호를 이용하여 JSON객체를 생성하고 속성을 추가하는 예 */
 var jsonObj3 = {};
 jsonObj3.name = "김연아"; jsonObj3.phone = "643-745-3456";
 document.writeln("5. "+jsonObj3.toJSONString() +"<br/>");
 
 /* Object객체를 이용하여 JSON 객체를 생성하고 초기화하는 예 */
 var jsonObj4 = new Object();
 jsonObj4.name = "김시준"; jsonObj4.phone = "3456-7645-568";
 document.writeln("6. "+jsonObj4.toJSONString() +"<br/>");
 
 /* Javascript eval()함수는 문자열을 표현식으로 변환하여 실행하는 기능이 있다 */
 document.writeln(eval("3+4") + "<br/>");
 var jsonObj5 = eval('('+ jsonObj4.toJSONString() +')');// '(', ')' 이 부분이 없으면 안됨
 document.writeln("8. "+jsonObj5.name +"<br/>");
 
 /* 비어 있는 JSON객체를 생성하여 eval()함수에 전달하면 그대로 JSON객체를 리턴한다 */
 var jsonObj6 = eval({});
 document.writeln("9. "+ jsonObj6.toJSONString() +"<br/>"); // {}출력됨
 
 /* JSON문자열을 eval()함수로 파싱하여 JSON객체를 생성할 때는 좌우에 괄호 문자를 추가해 주어야 한다
 그렇지 않으면 전달된 JSON문자열은 JSON객체로 파싱되지 않는다.

 var jsonObj7 = eval("{}");
 document.writeln("10. "+ jsonObj7.toJSONString() +"<br/>"); // 출력안됨
 */
 
 /* JSON 문자열을 JSON객체로 파싱할 때 eval()을 사용하려면 아래처럼 좌우에 괄호문자를 추가한다 */
 var jsonObj8 = eval('('+ "{}" +')');
 document.writeln("11. "+ jsonObj8.toJSONString() +"<br/>"); // {}출력됨
</script>
</body>
</html>