본문 바로가기
Spring

2022-12-09 JSON이란? ~사용방법

by HTT 2022. 12. 9.
JSON

 

JSON(제이슨, JavaScript Object Notation)은속성-값 쌍(attribute–value pairs), 배열 자료형(array data types) 또는 기타 모든 시리얼화 가능한 값(serializable value) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. -위키백과-

즉, 쉽게 말해서 자바스크립트에서 접근할 수 있는 객체로 만들어주는 기능이다.

 

{} : JSON객체 -> JSONObject
[] : JSON배열 -> JSONArray

 

 

< JSON객체 만들기 >

public class JSONMaker {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		//루트
		JSONObject myjson = new JSONObject();
		myjson.put("name", "bts");
		myjson.put("age", "30");
		
	}
    
}

 

- 루트에 JSONArray추가하기

JSONArray subjectlist = new JSONArray();
	subjectlist.add("자바");
	subjectlist.add("스프링");
	subjectlist.add("몽고디비");
    
	//위에서 작성한 JSONArray를 JSONObject에 추가하기
	myjson.put("subject", subjectlist);

 

- 위에서 작성한 JSONObject 문자열로 출력하기

System.out.println(myjson.toJSONString());

//출력결과
{"subject":["자바","스프링","몽고디비"],"name":"bts","age":"30"}

 

 

 

< 자바스크립트에서 JSON객체의 표현 >

 

<script type="text/javascript">
    var person = {
        "name":"bts",
        "age":"25",
        "subject":["java","js","css","html"],
        "addr":{
            "zip": "111-222",
            "addr1": "인천시"
        }, 
        "history":[
            {
                "subject":"java",
                "month":"11"
            },
            {
                "subject": "servlet",
                "month": "12"
            }
        ]	
    }
    alert(person);
    document.write("<h3>"+person.name+"</h3>");
    document.write("<h3>"+person.addr+"</h3>");
    document.write("<h3>"+person.age+"</h3>");
    document.write("<h3>"+person.subject[1]+"</h3>");
    document.write("<h3>"+person.addr.addr1+"</h3>");
    document.write("<h3>"+person.history[1].subject+"</h3>");
</script>

 

name과 value는 한쌍이며 콤마(,)로 구분한다. 이때 name과 value는 큰따옴표( " " )로 감싸줘야 한다.

 

일반데이터 => "name" : "value"

배열 => " name " : [ 배 ~~ 열 ]

배열에 데이터 여러 개 담기 => "name" : [     {  "name" : "value"...  } "name" : "value"...  }     ]

 

 

 

** 꼭 콤마(,)로 구분해주기!!

댓글