JSON/JSON 01, Object Creation
JSON, Object Creation
Soul-Learner
2011. 7. 23. 10:40
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>
<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>