JSON JSON과 GSON

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

sitelink1 https://coffee-mark.tumblr.com/post/6109...B3%BC-gson 
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  

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

 

 

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
22 com.fasterxml.jackson 을 이용한 json data 작성 예제 황제낙엽 2025.10.17 1
21 [ChatGPT] JsonNode 객체에서 asText()와 toString() 의 차이점 황제낙엽 2025.06.30 3
20 [JSONObject & JsonNode] "com.fasterxml.jackson" 과 "com.googlecode.json-simple" 라이브러리에 대하여 황제낙엽 2025.02.06 21
19 [Gemini, Jackson] JsonNode의 asText(), textValue(), toString() 함수들과 ObjectMapper.writeValueAsString() 함수 황제낙엽 2025.02.06 212
18 [ChatGPT] json data 의 정렬 (jackson, json simple, gson) 황제낙엽 2024.07.23 400
17 [Gemini] HttpURLConnection 클래스를 이용한 데이터 전송 방식 비교 황제낙엽 2024.03.14 1068
16 [JsonNode] depth 가 여러 단계인 json data 내부를 조회하는 java code 예제 (from Bard) file 황제낙엽 2023.08.09 1037
15 HttpServletRequest, HttpServletResponse, JSONObject, POST 황제낙엽 2022.01.12 720
14 jQuery JSON 데이터 통신의 특성 (HttpServletRequest) 황제낙엽 2019.06.23 739
» JSON과 GSON 황제낙엽 2019.03.24 748
12 [HttpURLConnection, HttpsURLConnection] 코드참조용 샘플프로젝트 secret 황제낙엽 2019.01.18 0
11 json-rpc 에서 한글 문제 황제낙엽 2018.08.08 740
10 Calendar, Date, Format, java.time 패키지 황제낙엽 2017.10.31 754
9 JSON Util (JSON 을 다루기 위해 직접 작성한 유틸 클래스) file 황제낙엽 2017.07.10 988
8 JSON 라이브러리(API) 종류 황제낙엽 2017.01.18 909
7 [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 7578
6 [JSON기초03] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 파싱 황제낙엽 2017.01.18 1136
5 [JSON기초02] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 생성 황제낙엽 2017.01.18 661
4 [JSON기초01] JSON이란? XML이란? JSON 개념, XML 개념 설명 황제낙엽 2017.01.18 871
3 JSON-lib Java Library file 황제낙엽 2013.04.09 629