일반 JSON과 GSON

황제낙엽 2019.03.24 21:19 조회 수 : 134

sitelink1 https://coffee-mark.tumblr.com/post/6109...B3%BC-gson 
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

JSON과 GSON

 

JSON이란?

JSON은 무엇인가?

경량의 데이타 교환 포맷이다.

> XML과 비교한다.

간단한 포맷

> 사람들을 위해 읽고 쓰기가 쉽다.

> 기계들을 위해 분석과 생성이 쉽다.

JSON은 텍스트 포맷이다.

> 언어에 독립적으로 프로그래밍된다.

> 프로그래머들에게 잘 알려진 C,C++,C#,Java,xxJavaScript,Perl,Pyton을 포함하는 C와 유사한 언어로 모여서 사용된다.

XML을 넘어 왜 JSON인가?

on-the-wire(선을 통한) 데이타 포맷인 XML보다 가볍고 빠르다.

JSON 오브젝트는 XML 데이타가 타입이 없는데 비해 타입을 가진다.

> JSON types : string, number, array, boolean

> XML 데이타는 모두 String 이다.

xxJavaScript 코드를 위해 Native 코드포맷이다.

> Data는 사용자의 xxJavaScript코드 안에서 JSON 객체에 접근이 쉽다.

XML 데이타가 해석과 장황한 DOM API를 통해 변수에 접근하는 것을 필요로 하는데 비해 

> 회수한 값들은 사용자의 자바스크립트 안의 객체속성에서 읽기가 쉽다.

JSON은 어디에서 사용되는가?

구성정보를 나타낸다.

통신 프로토콜을 실행한다.

 

GSON이란?

Gson은 JSON 파일을 자바 오브젝트로 변환할 수 있게 해주는 구글이 만든 자바 라이브러리이다. 자바스크립트로 처리하는 라이브러리도 많지만 자바에 더 능숙하다면 GSON을 추천한다. 

자바 오브젝트를 JSON으로 변경할 수 있는 오픈소스가 많이 있지만 대부분은 JAVA Annotation을 사용해야 하는 불편함이 있다. 또한 자바 Generics도 지원하지 않는 경우도 많다.

 

Gson의 특징

 

1. JSON 파일을 쉽게 읽고 만들 수있는 toJson(), fromJson() 메소드를 API로 제공한다.

2. JAVA Generics를 지원한다.

 

다운은 아래 위치에서 받을 수 있다.

 

http://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.2-release.zip

 

 

 

 

 

구글의 gson 라이브러리를 사용하여 객체를 json으로 마샬링(언마샬링)하기

 

google-gson은 자바 객체를 JSON으로 convert하는 자바 라이브러리이다.

 

웹페이지 : http://code.google.com/p/google-gson/

 

웹페이지에서 다운로드후 압축을 풀고 gson-2.x.x.jar을 클래스패스에 추가

 

ex) [출처]https://sites.google.com/site/gson/gson-user-guide

 

Primitives Examples

(Serialization)

Gson gson = new Gson();

gson.toJson(1);            ==> prints 1

gson.toJson(“abcd”);       ==> prints “abcd”

gson.toJson(new Long(10)); ==> prints 10

int[] values = { 1 };

gson.toJson(values);       ==> prints [1]

 

(Deserialization)

int one = gson.fromJson(“1”, int.class);

Integer one = gson.fromJson(“1”, Integer.class);

Long one = gson.fromJson(“1”, Long.class);

Boolean false = gson.fromJson(“false”, Boolean.class);

String str = gson.fromJson(“"abc"”, String.class);

String anotherStr = gson.fromJson(“["abc"]”, String.class);

 

 

Object Examples

class BagOfPrimitives {

  private int value1 = 1;

  private String value2 = “abc”;

  private transient int value3 = 3;

  BagOfPrimitives() {

    // no-args constructor

  }

}

 

(Serialization)

BagOfPrimitives obj = new BagOfPrimitives();

Gson gson = new Gson();

String json = gson.toJson(obj);  

==> json is {“value1”:1,“value2”:“abc”}

 

Note that you can not serialize objects with circular references since that will result in infinite recursion.

 

(Deserialization)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);   

==> obj2 is just like obj

 

 

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
291 자바 소수점 n번째 자리까지 반올림하기 황제낙엽 2019.07.29 163
290 java base64 encodeing,decoding 사용법 황제낙엽 2019.07.24 103
289 java.lang.StackTraceElement Class의 내용 출력 황제낙엽 2019.07.03 131
288 세션의 timeout 설정 >> HttpSession.setMaxInactiveInterval() 황제낙엽 2019.07.03 8311
287 jQuery JSON 데이터 통신의 특성 (HttpServletRequest) 황제낙엽 2019.06.23 103
286 [HttpURLConnection] 서버와의 통신 시도 시점 관련 황제낙엽 2019.06.23 116
285 역컴파일러 (decompiler, jad.exe) file 황제낙엽 2019.06.20 129
284 Microsoft SQL Server JDBC 드라이버 2.0 file 황제낙엽 2019.05.22 137
283 수치 데이터 처리 유틸리티 file 황제낙엽 2019.05.12 79
282 한글 초성 중성 종성 분리 유틸리티(자작) file 황제낙엽 2019.05.07 244
281 한글 초성 중성 종성 분리 (자모분리) 황제낙엽 2019.05.07 100
280 한글 인코딩의 이해 1편: 한글 인코딩의 역사와 유니코드 황제낙엽 2019.05.07 198
279 한글 인코딩의 이해 2편: 유니코드와 Java를 이용한 한글 처리 file 황제낙엽 2019.05.07 231
278 응답 헤더의 Content-disposition 속성 황제낙엽 2019.04.16 534
277 StringUtils - 문자열 처리 유틸리티 file 황제낙엽 2019.04.15 178
» JSON과 GSON 황제낙엽 2019.03.24 134
275 File.length() 에 대하여 황제낙엽 2019.03.24 221
274 File.delete() 와 File.deleteOnExit() 황제낙엽 2019.03.24 1887
273 List to Array / Array to List 황제낙엽 2019.03.24 43
272 Oracle JAVA 유료화에 관련한 최신 기사 황제낙엽 2019.01.23 65