JavaScript È°¿ëÆÁ
2019.05.29 / 24:28

[ÆĽÌ] 3. JSON Array ÆĽÌ

Źµ¹ÀÌ°³¹ßÀÚ
Ãßõ ¼ö 284

ÀÌÀü¹ø¿¡´Â °£´ÜÇÑ ¿¹Á¦¸¦ ÅëÇØ JSONÀ» ÀÌ¿ëÇÑ ÆÄ½Ì ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù.

¿¹Á¦¿¡¼­´Â 1¸íÀÇ ±³¼ö¿Í 1¸íÀÇ Çлý¸¸ °¡Áö°í ¿¹¸¦ µé¾î ºÃ¾ú´Ù.

{univ:{"professor":"±è±³¼ö","student":"ÀÌÇлý"}}

±×·±µ¥ Çö½ÇÀûÀ¸·Î ´ëÇп¡ ±³¼ö¿Í ÇлýÀÌ 1¸í¸¸ ÀÖÀ»¸®´Â ¾ø´Ù. µû¶ó¼­ ¿©·¯¸íÀÇ ±³¼ö¿Í ¿©·¯¸íÀÇ ÇлýÀ» Æ÷ÇÔÇÏ°íÀÚ ÇÑ´Ù. ¾î¶»°Ô Çϸé ÁÁÀ»±î?

Àú¹ø¿¡ °­Á¶Çß´ø ³»¿ëÀ» ±â¾ïÇغ¸ÀÚ "JSONÀº Map±¸Á¶ÀÌ´Ù." ±×·¸´Ù. JSONÀº ¸Ê ±¸Á¶ÀÌ´Ù. µû¶ó¼­ key¿Í value°¡ ½ÖÀ¸·Î ÀúÀåµÇ´Âµ¥ ¿©±â¼­ Áß¿äÇÑ°Ç key°ªÀÌ Áߺ¹µÇ¸é ¾ÈµÈ´Ù´Â °ÍÀÌ´Ù. (¸¶Áö¸· °ª¸¸ ÀúÀåµÈ´Ù.)
Áï, professor³ª student¶ó´Â key°ªÀÌ Áߺ¹µÉ ¼ö ¾ø´Ù´Â ¾ê±âÀÌ´Ù. ±×·±µ¥ ¿ì¸®´Â ¿©·¯¸íÀÇ ±³¼ö¿Í ÇлýÀ» ÀúÀåÇØ¾ß Çϴµ¥ ¾î¶»°Ô ÇØ¾ß ÇÒ±î?

À̶§ ÇÊ¿äÇÑ°Ô ¹Ù·Î JSON ArrayÀÌ´Ù. JSONÀ» ¹è¿­ ÇüÅ·Π³ªÅ¸³»¿© À妽ºº°·Î ³ª´©¾î ÀúÀåÇϸé Áߺ¹ ¹®Á¦¸¦ ÇÇÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

¹è¿­ ÇüÅ·Π³ªÅ¸³»¾îÁø JSON ¿¹Á¦¸¦ »ìÆ캸ÀÚ

{univ:[{"professor":"±è±³¼ö","student":"ÀÌÇлý"},{"professor":"¹Ú±³¼ö", "student":"ÃÖÇлý"},{"professor":"Çѱ³¼ö", "student":"ȲÇлý"}]}

¿©ÀüÈ÷ ÇÑÁÙ·Î ³ªÅ¸³»¸é º¹ÀâÇÏ´Ù. Á»´õ ¾Ë±â ½±°Ô ÁٹٲÞÀ» Çغ¸ÀÚ

{ univ: [ { "professor":"±è±³¼ö", "student":"ÀÌÇлý" }, { "professor":"¹Ú±³¼ö", "student":"ÃÖÇлý" }, { "professor":"Çѱ³¼ö", "student":"ȲÇлý" } ] }

ÇÑ°á ³ª¾ÆÁ³´Ù. ¿©±â¼­ º¼ ¼ö ÀÖµíÀÌ [ ]·Î ¹­ÀÎ ºÎºÐÀÌ ¹è¿­ÀÌ µÇ´Â °ÍÀÌ´Ù. µû¶ó¼­ ±è±³¼ö¿Í ÀÌÇлýÀº 0¹øÀ妽º, ¹Ú±³¼ö¿Í ÃÖÇлýÀº 1¹øÀ妽º, ³ª¸ÓÁö´Â 2¹øÀ妽º°¡ µÇ´Â°ÍÀÌ´Ù.

ÀÌÁ¦ À̸¦ ¹ÙÅÁÀ¸·Î ÆĽÌÀ» ½ÃÀÛÇغ¸ÀÚ.

import org.json.simple.JSONObject; import org.json.simple.JSONArray; //JSON¹è¿­ »ç¿ë import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; class JSONAdd{ static String json; //ÆĽÌÇÒ ÃÖÁ¾ µ¥ÀÌÅÍ ´ã¾ÆÁÖ±â À§ÇÑ ¹®ÀÚ¿­ //»ý¼ºÀÚ ÅëÇØ JSON»ý¼º public JSONAdd(){ //JSON»ý¼º½Ã ¾ðÁ¦³ª ³»ºÎºÎÅÍ Ã¤¿ö³ª°¡±â //JSONObject 3°³¿¡ °¢°¢ µ¥ÀÌÅÍ ÀúÀå JSONObject data1 = new JSONObject(); data1.put("professor", "±è±³¼ö"); data1.put("student", "ÀÌÇлý"); JSONObject data2 = new JSONObject(); data2.put("professor", "¹Ú±³¼ö"); data2.put("student", "ÃÖÇлý"); JSONObject data3 = new JSONObject(); data3.put("professor", "Çѱ³¼ö"); data3.put("student", "ȲÇлý"); //À§¿¡¼­ ¸¸µç 3°³ÀÇ ¿ÀºêÁ§Æ® µ¥ÀÌÅ͸¦ JSONArray¿¡ ¼ø¼­´ë·Î ÀúÀå JSONArray arr = new JSONArray(); arr.add(data1);//0¹øÀ妽º arr.add(data2);//1¹øÀ妽º arr.add(data3);//2¹øÀ妽º //ÃÖÁ¾ÀûÀ¸·Î univ¿ÀºêÁ§Æ®¿¡ JSON¹è¿­ ÀúÀå JSONObject univ = new JSONObject(); univ.put("univ", arr); //ÆĽÌÇÒ µ¥ÀÌÅÍ ÀúÀå json = univ.toJSONString(); //Å×½ºÆ®¿ë Ãâ·Â System.out.println(json); } }

ÀÌ ºÎºÐÀº ÆĽ̿¡ »ç¿ëÇÒ ¿¹Á¦¸¦ ¸¸µé¾îÁÖ´Â ÄÚµåÀÌ´Ù. Àü¹ø¿¡´Â ¸Þ¼Òµå¸¦ ÀÌ¿ëÇßÁö¸¸ ÆíÀǸ¦ À§ÇØ »ý¼ºÀÚ¸¦ ÀÌ¿ëÇØ ¸¸µé¾ú´Ù. 
Ŭ·¡½º °´Ã¼ »ý¼ºÀ» ÇÏ¸é ¾ðÁ¦³ª ÀÚµ¿À¸·Î ±âº» »ý¼ºÀÚ°¡ È£ÃâµÇ´Âµ¥ ±âº» »ý¼ºÀÚ¿¡ JSONÀ» ¸¸µå´Â Äڵ带 ³Ö¾î InstantiationµÉ¶§¸¶´Ù ÀÚµ¿À¸·Î JSONÀÌ »ý¼ºµÇ°Ô ÇÏ¿´´Ù. ±î¸Ô¾úÀ»Áöµµ ¸ô¶ó¼­ ¼³¸íÇÏ¿´´Ù.

ÀÌ Äڵ带 ¸ÞÀθ޼ҵ忡¼­ InstantiationÇÏ¿© ½ÇÇà½ÃÄѺ¸¸é Ãâ·Â °á°ú´Â ¿ª½Ã Àß ³ª¿Â´Ù.


ÀÌÁ¦ À̸¦ ÆĽÌÇغ¸µµ·Ï ÇÑ´Ù. ¸ñÇ¥´Â Àü¹ø°ú µ¿ÀÏÇÏ°Ô À̸§µé¸¸ ¹Þ¾Æ¿À´Â °ÍÀÌ´Ù.

public class Main{ public static void main(String[] args) throws ParseException { JSONAdd jsonAdd = new JSONAdd(); //Àüü ÆÄ½Ì Á¤º¸°¡ ÀúÀåµÈ jsonAddÀÇ jsonÀ» ÀÚü StringÀ» »ý¼ºÇÏ¿© ¿Å°Ü ´ãÀ½ String json = jsonAdd.json; JSONParser parser = new JSONParser(); JSONObject univ = (JSONObject)parser.parse(json); //Å×½ºÆ®Ãâ·Â //System.out.println(univ.toJSONString()); JSONArray arr = (JSONArray)univ.get("univ"); //Å×½ºÆ®Ãâ·Â //System.out.println(arr.toJSONString()); for(int i=0;i<arr.size();i++){ JSONObject tmp = (JSONObject)arr.get(i);//À妽º ¹øÈ£·Î Á¢±ÙÇؼ­ °¡Á®¿Â´Ù. String professor = (String)tmp.get("professor"); String student = (String)tmp.get("student"); System.out.println("----- "+i+"¹ø° À妽º °ª -----"); System.out.println("±³¼ö : "+professor); System.out.println("Çлý : "+student); } } }

¾ðÁ¦³ª ±×·¸µí JSONParser¸¦ ¸ÕÀú ¸¸µé¾îÁØ´Ù. ±×¸®°í Á¦ÀÏ ¹Ù±ù°í¸®ÀÎ univºÎÅÍ Á¢±ÙÇØ ¹Þ¾Æ¿Â´Ù. ±×·±µ¥ ¹è¿­ ÇüÅ·ΠÀúÀåµÇ¾îÀֱ⠶§¹®¿¡ JSONArrayÇüÅ·ΠÇüº¯È¯ ÇÏ¿© ¹Þ¾Æ¿Í¾ß ÇÑ´Ù.(Exceptionó¸® ¶ÇÇÑ ÀØÁö ¸»ÀÚ)

ÀÌÈÄ ¹è¿­À̱⶧¹®¿¡ for¹®À» ÀÌ¿ëÇØ À妽º·Î Á¢±ÙÀ» ÇÏ¿´´Ù. for¹® ù°ÁÙ¿¡ tmp¶ó´Â Àӽà JSON¿ÀºêÁ§Æ®¸¦ ¼±¾ðÇÏ°í, arr.get(i)¸¦ ÅëÇØ i¹ø° °ªÀ» °¡Á®¿À°Ô ÇÏ¿´´Ù. ±×¸®°í professor¿Í student¸¦ °¢°¢ Çüº¯È¯ÇÏ¿© Ãâ·Â½ÃÄÑÁØ´Ù. for¹®ÀÇ ¹Ýº¹È½¼ö´Â 0¹ø ~ arr.size()À̱⠶§¹®¿¡ ÀÚ¿¬½º·´°Ô ¹è¿­ÀÇ ±æÀÌ ¸¸Å­¸¸ ¹Ýº¹Ãâ·ÂµÈ´Ù.

°á°ú°ªÀº ´ÙÀ½°ú °°´Ù.

¿Ï¼ºµÈ ÄÚµå Àü¹®Àº ¾Æ·¡¿Í °°´Ù.

ÄÚµå ±¸¼º :

import org.json.simple.JSONObject; import org.json.simple.JSONArray; //JSON¹è¿­ »ç¿ë import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; class JSONAdd{ String json; //ÆĽÌÇÒ ÃÖÁ¾ µ¥ÀÌÅÍ ´ã¾ÆÁÖ±â À§ÇÑ ¹®ÀÚ¿­ //»ý¼ºÀÚ ÅëÇØ JSON»ý¼º public JSONAdd(){ //JSON»ý¼º½Ã ¾ðÁ¦³ª ³»ºÎºÎÅÍ Ã¤¿ö³ª°¡±â //JSONObject 3°³¿¡ °¢°¢ µ¥ÀÌÅÍ ÀúÀå JSONObject data1 = new JSONObject(); data1.put("professor", "±è±³¼ö"); data1.put("student", "ÀÌÇлý"); JSONObject data2 = new JSONObject(); data2.put("professor", "¹Ú±³¼ö"); data2.put("student", "ÃÖÇлý"); JSONObject data3 = new JSONObject(); data3.put("professor", "Çѱ³¼ö"); data3.put("student", "ȲÇлý"); //À§¿¡¼­ ¸¸µç 3°³ÀÇ ¿ÀºêÁ§Æ® µ¥ÀÌÅ͸¦ JSONArray¿¡ ¼ø¼­´ë·Î ÀúÀå JSONArray arr = new JSONArray(); arr.add(data1);//0¹øÀ妽º arr.add(data2);//1¹øÀ妽º arr.add(data3);//2¹øÀ妽º //ÃÖÁ¾ÀûÀ¸·Î univ¿ÀºêÁ§Æ®¿¡ JSON¹è¿­ ÀúÀå JSONObject univ = new JSONObject(); univ.put("univ", arr); //ÆĽÌÇÒ µ¥ÀÌÅÍ ÀúÀå json = univ.toJSONString(); //Å×½ºÆ®¿ë Ãâ·Â //System.out.println(json); } } public class Main{ public static void main(String[] args) throws ParseException { JSONAdd jsonAdd = new JSONAdd(); //Àüü ÆÄ½Ì Á¤º¸°¡ ÀúÀåµÈ jsonAddÀÇ jsonÀ» ÀÚü StringÀ» »ý¼ºÇÏ¿© ¿Å°Ü ´ãÀ½ String json = jsonAdd.json; JSONParser parser = new JSONParser(); JSONObject univ = (JSONObject)parser.parse(json); //Å×½ºÆ®Ãâ·Â //System.out.println(univ.toJSONString()); JSONArray arr = (JSONArray)univ.get("univ"); //Å×½ºÆ®Ãâ·Â //System.out.println(arr.toJSONString()); for(int i=0;i<arr.size();i++){ JSONObject tmp = (JSONObject)arr.get(i);//À妽º ¹øÈ£·Î Á¢±ÙÇؼ­ °¡Á®¿Â´Ù. String professor = (String)tmp.get("professor"); String student = (String)tmp.get("student"); System.out.println("----- "+i+"¹ø° À妽º °ª -----"); System.out.println("±³¼ö : "+professor); System.out.println("Çлý : "+student); } } }

¿©±â±îÁö Çؼ­ JSON Array¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. »ç½Ç»ó Á¦°øµÇ´Â ´ëºÎºÐÀÇ JSONÀº ÀÌ·¯ÇÑ ¹è¿­ ÇüÅ·ΠÁÖ¾îÁö±â ¶§¹®¿¡ JSONArray ÆĽÌÀ» ÀÍÈ÷´Â °ÍÀº ÇʼöÀûÀÌ´Ù. 

´ÙÀ½ ½Ã°£¿¡´Â JSONÀ» ¹Þ´Âµ¥ ÇÊ¿äÇÑ APIÅ°¸¦ ¹ß±Þ¹Þ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°í º»°ÝÀûÀ¸·Î À¥À» ÅëÇÑ JSONÆĽ̿¡ ´ëÇØ »ìÆ캸°Ú´Ù.