¾È±Ô °øºÎ¹æ

Javascript & JQuery & CSS > JSON Text¸¦ JSON Object·Î º¯È¯Çϱâ - JSON.parse() , parseJSON()

µî·ÏÀÏ : 2017-07-14 15:13 Á¶È¸¼ö : 53,796

JSONÀº ½áº¸¸é ½áº¼¼ö·Ï À¯¿ëÇÑ °Í °°´Ù. °£°áÇÏ°í ÆíÇÏ°í Á÷°üÀûÀÌ´Ù. 
    
¾î·µç JSON Text¸¦ Object·Î º¯È¯ÇØ¾ß ÇÒ ¶§°¡ ÀÖ´Ù. 

¿©±â¼­ JSON Text¶ó´Â °ÍÀº ÇüÅ´ JSONÀÇ ÇüÅÂÀÌÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ ÀÌ°É Object°¡ ¾Æ´Ñ ±×³É ÅؽºÆ®·Î¸¸ ÀνÄÇÏ°í ÀÖ´Ù´Â °ÍÀÌ´Ù. 

ÀÌ°É Object·Î ¹Ù²Ù¾î¾ß¸¸ ±×¾ÈÀÇ °ªÀ» ºÒ·¯´Ù°¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
°¡Àå ÈçÇÑ ¿¹°¡ Ajax¸¦ »ç¿ëÇÒ °æ¿ìÀÌ´Ù. Ajax·Î È£ÃâÀ» ÇÏ°í °á°ú°ªÀ¸·Î ¹ÞÀº req.responseText·Î JSONÀ» ¹Þ¾ÒÀ» °æ¿ì¿¡´Â ±×³É TextÀ̱⠶§¹®¿¡ Object·Î º¯È¯ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

{ id:'Outsider', sex:'male' }

Ajax¿¡¼­ ¸®ÅϹÞÀ» JSONÀÇ ÇüÅ°¡ À§¿Í °°ÀÌ µÇ¾î ÀÖÀ» °æ¿ì¿¡´Â 

var obj = eval("("+returnValue.responseText+")");
alert(obj.id);  // Outsider

À§ÀÇ ÄÚµåó·³ evalÀ» ÇØÁÖ¸é JSON ¿ÀºêÁ§Æ®·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù.

[ { id:'Outsider', sex:'male' },
  { id:'Zziuni', sex:'male' } ]

JSONÀÌ À§ÀÇ ÇüÅÂó·³ ¹è¿­·Î µÇ¾î ÀÖÀ» °æ¿ì¿¡´Â

var obj = eval(returnValue.responseText);
// -> { id:"Outsider", sex:"male" }

±×³É evalÀ» ÇØÁÖ¸é JSON ¿ÀºêÁ§Æ®·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù.

´Ù¸¸ ÀÌ·¸°Ô º¯È¯ÇÒ °æ¿ì eval()Àº ºü¸£±â´Â ÇÏÁö¸¸ ´Ü¼øÈ÷ ±×¾ÈÀÇ ½ºÆ®¸µÀ» ±×´ë·Î ½ÇÇà½ÃÄÑ ÁÖ´Â °ÍÀ̱⠶§¹®¿¡ 

¸®ÅÏ°ªÀ¸·Î ÀÚ¹Ù½ºÅ©¸³Æ® ¸í·É¹®ÀÌ ¿Â´Ù¸é ±×´ë·Î ½ÇÇà½ÃÄѹö¸®±â ¶§¹®¿¡ º¸¾ÈÀ̽´°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.  

ÀÌ·¸°Ô ¸®ÅϹÞÀº ¼Ò½º¸¦ ½Å·ÚÇϱ⠾î·Á¿ï ¶§´Â JSON.org¿¡¼­ Á¦°øÇÏ´Â JSON parserÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. 

JSON parser´Â ¿ÀÁ÷ JSON text¸¸ ¹Þ¾ÆµéÀÌ°í ´Ù¸¥ ½ºÅ©¸³Æ®´Â °ÅºÎÇÏ°í eval()¸¸Å­À̳ª ºü¸£´Ù.

var obj = JSON.parse(returnValue.responseText);
// -> { id:"Outsider", sex:"male" }

JSON.parse()ÀÇ ¸ñÀû´ë·Î JSON ÅؽºÆ® ¿Ü¿¡´Â °ÅºÎÇؾßÇϱ⠶§¹®¿¡ JSON¹®¹ýÀ» Á¤È®È÷ ÁöÄÑÁÖÁö ¾ÊÀ¸¸é SyntaxError ¿¹¿Ü°¡ ´øÁ®Áø´Ù. 

±×·¸±â ¶§¹®¿¡ Å°¿Í °ªÀ» ¸ðµÎ ½Öµû¿ÈÇ¥(")·Î ¹­¾îÁÖ´Â ¹®¹ýÀ» Á¤È®ÇÏ°Ô ÁöÄÑÁÖ¾î¾ß ÇÑ´Ù.(¹°·Ð ÀÌ °æ¿ì´Â °ªµéÀÌ ½ºÆ®¸µÀ̱⠶§¹®¿¡ ½Öµû¿ÈÇ¥·Î ¹­¾îÁÖ´Â °ÍÀÔ´Ï´Ù.) ¾Æ·¡Ã³·³....

{ "id":"outsider", "sex":"male" }

¿©±â¼­ JSON.parse()¸¦ »ç¿ëÇϱâ À§Çؼ­´Â Douglas Crockford°¡ ¸¸µç json2.js°¡ ÇÊ¿äÇÏ´Ù. 

json2.js´Â ´õ±Û¶ó½º Å©·ÏÆ÷µå°¡ JSONÀÇ Æí¸®ÇÑ »ç¿ëÀ» À§ÇØ ¸¸µç JSON APIÀÇ »õ¹öÀüÀÌ´Ù.(±×·¡¼­ 2°¡ ºÙ¾îÀÖ´Ù.) 

ÀÌ API¿¡´Â 2°³ÀÇ ¸Þ¼­µå°¡ µé¾îÀִµ¥ JSON.stringify()¿Í JSON.parse()ÀÌ´Ù. 

JSON.stringify()´Â JSON.parse()¿Í´Â ¿ÏÀüÈ÷ ¹Ý´ë·Î JSON °´Ã¼¸¦ ÁÖ¸é JSON ÅؽºÆ®·Î ¸¸µé¾î¼­ ÁØ´Ù. ÇÊ¿äÇÒ¶§ °®´Ù ¾²¸é µÈ´Ù. 

±×·³ ¿¹Á¦¸¦ º¸ÀÚ.
 

	var aa = '{"id":"cak0280","password":"#pw","idStore":"on"}';
	var obj1 = JSON.parse(aa)			//TEXT ¹®ÀÚ¿­À» JSON °´Ã¼·Î º¯È¯½ÃÅ´

	alert(typeof aa);		//string
	alert(typeof obj1)		//object

	$('body').append( aa + "<br>");		//{"id":"cak0280","password":"#pw","idStore":"on"} Ãâ·ÂµÊ.

	$('body').append( obj1.id + ":"+ obj1.password + ":" + obj1.idStore + "<br>");
   
parseJSON() ¸Þ¼­µåµµ °°Àº µ¿ÀÛÀ» ¼öÇàÇÑ´Ù.
 
var page_info = $.parseJSON( page.replace(/\'/g, "\"") );


 
¡Ø Ȥ½Ã µµ¿òÀÌ µÇ¼Ì´Ù¸é ´ñ±Û¿¡ ÇѸ¶µð ³²°ÜÁÖ¼¼¿ä!
ÀÛ¼ºÀÚ   ºñ¹Ð¹øÈ£
ÀÚµ¿±Û ¹æÁö     (ÀÚµ¿±Û ¹æÁö ±â´ÉÀÔ´Ï´Ù.)
³»¿ë   ´ñ±Û´Þ±â 
À̸ÞÀÏ ¹®ÀÇ : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.