준준의 기록일지

[개발] json과 Gson 본문

개발 전체

[개발] json과 Gson

junjunwon 2020. 8. 13. 11:26

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."




공부하고 정리하는 것을 중점으로 작성해서 본인 위주로 작성된 경향이 있습니다.

자세한 내용은 출처를 통해 확인해주세요.

 

출처 : https://galid1.tistory.com/501

 

Java - Json 과 Gson 이란?

Json과 Gson JSON 을 사용하기전에 당연히 여러곳에서 무엇인지를 검색한 뒤에 사용했지만 역시 설명하려고 하면 버벅거리게 되는것 같습니다. 아무래도 정확히 알지 못해서인것 같습니다. 때문에

galid1.tistory.com

 

JSON

javascript에서 객체를 표현하고, 데이터를 주고 받기 위해 사용된다.

{

      "name" : "junho",

      "sex" : "male"

}

{} 중괄호 : 객체 표기

[] 대괄호 : 배열

각 속성은 key와 value 쌍으로 구성하고 : (콜론) 으로 구분된다.

속성이 여러개인 경우 , (쉼표)로 구분

 

장점

가독성 / 가볍다 / 플랫폼에 독립적.

플랫폼의 독립적인 이유

      특정 언어나 플랫폼에 독립적이어서 위의 JSON 형식을 지키면 어떤 시스템 간의 데이터 교환이 가능하다.

 

JSONobject 클래스 인스턴스를 생성해서

String Information ="{'age':20, 'name':'junho'}";

JSONobject json=new JSONobject(Information);

json을 출력하면 json형태의 데이터로 변환되어 출력된다.

 

이때 임의로 생성한 jsonString이 json 문법에 맞지 않을때의 예외 처리를 위해 try/catch문으로 감싼다.

숫자만 있다면 자동으로 정수형으로 인식하고, 숫자+문자열 또는 문자열로만 이루어진 경우에는 자동으로 문자열로 인식하여 JSONObject로 변환된다.

 

JSONObject object=new JSONObject();

object.put("age", 20);과 같이 할 수도 있다.

 

 

GSON

gson은 json구조를 띄는 직렬화된 데이터를 JAVA의 객체로 역직렬화, 반대의 기능을 해주는 자바 라이브러리이다.

즉, JSON object <-> JAVA Object 를 돕는 라이브러리이다.

 

사용법은

먼저 라이브러리를 추가하고, 

Gson gson=new GsonBuilder().create()로 인스턴스를 생성한다.

만약 Student클래스에 생성자를 만들어서 변수를 초기화했을때

String jsonString="{'age':20, 'name':junho'}";

Student student=gson.fromJsonn(jsonString, Student.class);하고

 

student.getInfo();와 같이 해당 변수들을 System.out.print해서 확인해보면 JavaObject로 바뀐걸 알 수 있다.

 

자세한 예제는 출처 참고!!

참고로 Student 클래스 생성자에 다른클래스를 초기화해서 변수를 가지고 있을때 Stduent 클래스를 json으로 변환하면 해당 클래스 내부 객체도 함께 json형식으로 바뀐다.