오늘은 JSON에 대해 정리해보겠습니다아~~ 

왜 사용하는지?  어떻게 생겼는지?  어떻게 사용하는지? 

 

 

JSON (JavaScript Object Notation)이란?
JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나
  전송할 때 많이 사용되는 경량의 DATA 교환 형식

 

JSON 생김새 

{

   "NAME": "테스트",

    "고객명": "테스트",

    "나이": 29,

    "성별": "",

    "구매물건": ["가방", "휴대폰케이스"]

    "등록된 결제방법": { "신용카드": "삼송카드", "자동이체계좌": "110-110-110-1111", "결제코드": 350 },

    "주소": "서울특별시 역삼동"

 }

 

json은 중괄호로 둘러 쌓인 데이터(객체)의 모음이라고 볼수있는데요, 

name(key): value 쌍으로 작성되고 각 쌍들은 쉼표(,)로 구분됩니다~

name값은 String 타입이기 때문에 반드시 큰 따옴표로 묶어주어야합니다.

value도 String이라면, "큰따옴표" 로 묶어주고~ 

29와 같이 숫자라면 큰따옴표 없이 작성해도 됩니다.

 

Q. 대괄호는 뭐지 ? 

 "구매물건": [ "가방","휴대폰케이스" ]

JSON 에서 대괄호 ([])는 배열을 의미해요~

배열의 각 요소는 저기 예제처럼 기본 자료형(String)이어도 되고, 배열, 객체여도 괜찮아요

value는 배열, 또는 객체여도 됩니다. 우리는 지금 value가 배열인 것을 본거죠.

 

Q. 배열속에 객체? 기본 자료형(String)이어도 되고, 배열, 객체여도 괜찮다는게 뭘까? 


 "구매물건": [ "가방", {"폰케이스": 20000}, [31, "목걸이"] ]

 
자 위 코드를 보면 value가 대괄호로 묶였으니 이건 배열을 나타내는 것이겠죠? 

이 안에는 문자, 객체 ({"폰케이스": 20000}) , 배열([31, "목걸이"])이 들어갈 수 있는것이죠

배열안에 기본 자료형(String)이어도 되고, 배열, 객체가 들어갈 수 있다는거 확인하세요~

java와 같은 문법을 사용해 왔다면 배열안에 같은 타입의 객체가 담겨야한다고 생각할 수 있는데요

json은 그점에서 자유롭다는거 확인하세요! 

( 물론 자바도 object로 받으면 담을 수 있지만, 대부분 타입을 명시하고 배열을 생성하니까요 ^^;)
 

다시 한번말하지만,

JSON은 name(key): value 쌍으로 작성되고name은 String이며, value는 기본 자료형이거나 배열, 객체입니다.

또한, 각 쌍들은 쉼표(,)로 구분돼요. 

 



Q. 그래서 json을 왜 사용하는걸까?

그동안 실무에서 json을 사용했던 기억을 떠올리니  비동기 통신에 자주 사용했고

핵심적인건 외부 api나 타서비스와 협력하여 작업할때 유용하게 사용했던거 같다.

내가 자바를 사용하고 타업체는 php 를 사용하더라도 서로 데이터를 주고 받을때 json으로 받으면

개발환경에 상관없이 데이터를 주고 받을 수 있다는 장점! (이게 가장 큰듯~ )

json 데이터를 파싱하는 방법도 언어마다 잘 되어있는거 같아 편하고 내입맛대로 주고 받기 좋은듯하다.


무언갈 이해하기전에 실제로 사용되는 예가 어떤지 보고나면 더 기억에 남기에 적어본다~! 

'JAVA 강의 ( 초급)' 카테고리의 다른 글

AJAX 기초 수업 개념 정리!!  (0) 2021.02.18
SpringBoot Ajax 사용하기!  (0) 2021.02.18
JAVA 기초 3강  (0) 2020.10.04
자바 2강!  (0) 2020.09.26

첫번째로 프론트와 컨트롤러에 Post로 설정되어있는지 확인해줘야한다.

Controller에 분명 method=RequestMethod.POST 라고 설정되어 있고 

@ResponseBody
@RequestMapping(value = "/reg", method = RequestMethod.POST)
	public Map<String, Object> test() {
		return null 
}

 

프론트단에서 보낼때도 분명 POST 방식으로 보냈는데 

$.post("/reg", $frm.serialize(), function(data, textStatus){
	if(textStatus =="success") { 
		$("#res").text(data.res); 		
	}
});

 

Request method 'POST' not supported 에러가 난다면 

SpringSecurity를 확인해봐야한다. .

csrf 설정이 되어있으면 요청할때 csrf 값을 보내줘야하는데 없어으면 위와같이 발생된 에러임.. 

config 파일에 아래처럼 disable 처리해준다. 

http.authorizeRequests().csrf().disable()

 

적용하고 다시 실행해보기! 

@ 주제 

JSON 정리 

 

@ 목적 

JSON을 이해하고 사용하기 위함 

 

@ 내용

json 이란 경량화 되어있는 하나의 데이터교환 형식이다.

서로 다른 언어들간에 데이터를 주고받을 수 있도록 만들어진 텍스트 기반의 형식이다.

우리가 잘 알고 있는 xml 도 서로 다른 언어들의 데이터 교환을 위해 만들어진 방식중 하나인데 이보다 더 가볍게 만들어진게 json 표기 방식이다.

 

형식

배열 : [값 (value), 값 ]

객체 : {이름(key):값 (value)}

일반적인 형태 : [{key:value},{key:value}]

 

Gson 이란 java 객체럴 json 표현식으로 변환할 수 있게하는 Java 라이브러리다. 반대로 json 타입의  String 을 java 객체로도 변환 가능하다.

비동기로 호출한 뒤 return 값을 던질때 사용하면 편하다~

또는 Map<String,Object> 로 값을 넣어서 보내도 된다~~

new Gson().toJson(JSON으로 변환할 값 );

new Gson().fromJson(json 값 );

 

요렇게 선언하여 사용가능하다.

chrome-extension://aeeleemfafepeofgolmcmcpbocaeedmk/blocked.html (사이트 참고)

 

 

'기능 정리' 카테고리의 다른 글

Same-Origin Policy  (0) 2020.08.12
util 태그 라이브러리의 사용  (0) 2020.08.11
JSTL 이란  (0) 2020.08.11
JSTL Function (prefix : fn) 정리합니다.  (0) 2020.08.11
JSTL: fmt 사용법  (0) 2020.08.11

+ Recent posts