프로그램 작성

GSON – 초보자를 위한 빠른 가이드

2021년 10월 30일

목차

GSON이란 무엇입니까?

지손 , Google Gson이라고도 하는 Java 기반 라이브러리는 Java 개체를 직렬화 및 역직렬화하는 데 유용합니다. 즉, Gson은 Java 객체를 다음으로 변환하는 데 사용됩니다. JSON 형태. 또한 모든 JSON 문자열을 해당 Java 객체로 변환합니다.

Gson을 사용하면 사용자가 Java 개체를 사용자 정의할 수 있으며 Java Generics를 광범위하게 지원합니다. Java 객체를 JSON 문자열로 변환하는 toJson()과 JSON 문자열을 Java 객체로 변환하는 fromJson()의 두 가지 간단한 방법을 사용합니다. Gson의 중요한 목표 중 하나는 자바 개체를 수정할 수 없는 해당 JSON 문자열로 변환합니다.

Gson에는 직렬 변환기와 역직렬 변환기가 포함됩니다. Gson 직렬 변환기를 사용하면 JSON 문자열을 해당 Java 개체로 변환할 수 있습니다. 여러 유사한 Java 객체를 직렬화할 수 있습니다. 반면에 Gson deserializer는 Java 개체를 별도의 JSON 문자열로 변환합니다.

Gson의 특징:

다음은 Gson의 가장 바람직한 기능입니다.

  • Gson은 자바 제네릭에서 지원하는 표준화된 라이브러리인 오픈 소스 Google 라이브러리입니다.
  • 이 Google 라이브러리는 상속 계층이 있는 복잡한 개체도 지원합니다. 또한 중첩 클래스를 지원합니다.
  • Java 개체를 직렬화 및 역직렬화하는 동안 Gson은 사용자가 사용자 지정 가능한 직렬 변환기 및 역직렬 변환기를 만들 수 있도록 도와줍니다. 이를 통해 사용자는 프로세스를 제어할 수 있습니다. 또한 코드를 사용할 수 없거나 액세스할 수 없는 Java 개체를 역직렬화할 수 있습니다.
  • Gson의 또 다른 특징은 사용자 정의가 가능하다는 것입니다. 사용자는 복잡한 출력을 인쇄해야 하는지 아니면 사람이 읽을 수 있는 출력을 인쇄해야 하는지 결정할 수 있습니다.
  • Gson은 메모리가 덜 필요하고 매우 빠르고 빠릅니다.
  • JDK(Java Development Kit)에만 의존하며 다른 외부 라이브러리는 필요하지 않습니다.

JSON을 처리하는 방법?

Gson 라이브러리, 스트리밍 API, 트리 모델 및 데이터 바인딩에서 제공하는 JSON 처리 방법에는 세 가지가 있습니다. 각 JSON 처리 형식에 대해 논의해 보겠습니다.

스트리밍 API

JSON을 처리하는 스트리밍 API 방식에서는 모든 JSON 콘텐츠를 개별 이벤트로 읽고 씁니다. JSON 데이터는 JsonReader를 사용하여 읽고 JsonWriter를 사용하여 작성합니다. JsonReader 및 JsonWriter는 JSON 데이터를 토큰으로 취급합니다. 이 토큰을 JsonToken이라고 합니다. JSON 처리를 위한 스트리밍 API 방법은 다른 두 가지 방법보다 가장 효과적이고 빠른 방법입니다. 읽기 및 쓰기 작업을 빠르고 빠르게 수행합니다.

나무 모형

또 다른 JSON 처리 방법은 트리 모델입니다. 트리 모델에서 JSON 콘텐츠는 트리와 같은 구조로 표현됩니다. 이 트리형 JSON 데이터 구조에는 JsonObjects 노드가 포함되어 있습니다. 트리 모델은 JSON을 처리하는 가장 유연한 방법입니다. XML의 DOS 파서와 동일하다.

데이터 바인딩

JSON 처리를 위한 데이터 바인딩 접근 방식은 속성 접근자를 사용합니다. 속성 접근자는 JSON을 다음으로 변환합니다. POJO(Plain Old Java Object) 그 반대. 데이터 바인딩 접근 방식에는 Jsonreads 및 Jsonwrites를 수행하는 데이터 유형 어댑터가 있습니다. 이 데이터 바인딩 방법은 XML의 JAXB 파서와 동일합니다.

Gson 환경설정

시스템에 로컬 Java 환경 설정이 없으면 먼저 설정해야 합니다. 시스템에 Java 환경을 설정하는 것은 매우 간단하고 관리하기 쉽습니다. 다음은 로컬 Java 환경 설정에 대한 전체 안내서입니다. 아래 나열된 단계를 차례로 따라 로컬 Java 환경을 성공적으로 설정합니다.

  • 먼저 JavaSE를 다운로드해야 합니다. 웹사이트 . 컴퓨터의 운영 체제와 호환되는 JavaSE 버전을 다운로드해야 합니다.
  • JavaSE 파일을 다운로드하고 설치 중에 표시되는 지침을 따르십시오. JavaSE가 시스템에 설치됩니다.
  • 그런 다음 환경 변수의 올바른 경로를 설정했습니다.

Windows 2000/XP용 경로 설정 단계

위 웹사이트에서 다운로드한 JavaSE 파일을 로컬 드라이브 C/Program Files/java/jdk 디렉토리로 이동합니다. 다음으로, 환경 변수에 대한 경로를 설정하려면 아래 단계를 참조하십시오.

  • '내 컴퓨터'로 이동하여 마우스 오른쪽 버튼을 클릭합니다. '속성'을 확인하고 클릭합니다.
  • 나중에 '고급 탭'으로 이동하여 '환경 변수' 버튼을 클릭합니다.
  • 경로를 확인하십시오. 다운로드한 JavaSE 파일을 보관한 jdk 디렉토리로 경로를 변경합니다. 현재 경로가 'C:WINDOWSSYSTEM32'인 경우 'C:WINDOWSSYSTEM32;c:Program Filesjavajdkin'으로 변경합니다.

Windows 95/98/ME용 경로 설정 단계

JavaSE 파일을 다운로드한 후 C/Program Files/java/jdk 디렉터리로 이동합니다. Windows 95 / 98 / ME에서 경로를 설정하려면 다음 단계를 따르십시오.

  • 'C:autoexec.bat' 파일로 이동합니다. 나중에 'C:autoexec.bat' 끝에 'SET PATH=%PATH%;C:Program Filesjavajdkin'을 추가합니다.

Linux, Solaris, FreeBSD 및 UNIX 시스템의 경로 설정 단계

Linux, Solaris, FreeBSD 및 UNIX 시스템의 경우 모든 Java 바이너리가 설치된 위치로 PATH를 설정해야 합니다. 예를 들어 bash 쉘을 사용하십시오. 다음 코드 줄을 사용하여 경로를 설정합니다.

'.bashrc: 내보내기 PATH=/path/to/java/java:$PATH'.

Gson 환경은 어떻게 설정하나요?

Java 경로를 설정했으면 다음은 시스템의 JSON 환경을 설정하기 위한 나머지 단계입니다.

  • 먼저 Gson 아카이브를 다운로드해야 합니다. 최신 버전의 Gson 아카이브를 다운로드해야 합니다. gson-2.3.1.jar에서 Gson 아카이브 또는 Gson jar 파일을 다운로드합니다. Microsoft Windows, Linux, macOS 시스템의 경우 JSON 아카이브 파일 이름은 'gson-2.3.1.jar'입니다. gson-2.3.1.jar 파일을 다운로드한 후 C:>gson 폴더에 복사합니다.
운영 체제 아카이브 파일 이름
마이크로소프트 윈도우gson-2.3.1.jar.
맥 OS Xgson-2.3.1.jar.
리눅스gson-2.3.1.jar.
  • 다음 단계는 GSON_HOME 환경 변수의 경로를 설정하는 것입니다. GSON_HOME 환경 변수 경로를 시스템에서 gson-2.3.1.jar 파일이 있는 위치로 수정해야 합니다. 다른 운영 체제의 경우 GSON_HOME 환경 경로가 다릅니다. 아래 표는 시스템의 현재 경로를 GSON 경로로 변경하는 방법을 안내합니다.
운영 체제 결과
마이크로소프트 윈도우환경 변수를 GSON_HOME에서 C:gson으로 변경합니다.
맥 OS XmacOS.exportGSON_HOME = /usr/local/gson에서 환경 변수를 변경하려면 아래 명령을 따르십시오.
리눅스Linux 시스템에서 환경 변수를 변경하려면 아래 명령을 따르십시오.exportGSON_HOME = /Library/gson
  • GSON_HOME 환경 변수에 대한 JSON 경로를 설정한 후 환경 변수의 CLASSPATH를 설정해야 합니다. CLASSPATH 환경 변수를 Gson jar 파일이 있는 위치로 수정합니다.
운영체제 결과
마이크로소프트 윈도우% CLASSPATH%;% GSON_HOME% gson-2.3.1.jar;.;
맥 OS X내보내기 CLASSPATH = $ CLASSPATH: $ GSON_HOME / gson-2.3.1.jar :.
리눅스내보내기 CLASSPATH = $ CLASSPATH: $ GSON_HOME / gson-2.3.1.jar :.

Gson 자바 예제

Windows에서 로컬 Java 환경과 Gson 환경을 설정하는 방법을 살펴보았습니다. 리눅스 , macOS 운영 체제. Gson 코드를 실행하는 데 필요한 모든 것을 설정하면 모든 응용 프로그램을 실행할 준비가 된 것입니다. 시스템에서 한 가지 예를 직접 시도해 볼 수 있습니다.

아래 Gson 예제를 시도하기 위해 다음과 같은 인기 있는 Java 편집기 중 하나를 사용할 수 있습니다. 메모장 , 넷빈 , 또는 . 메모장은 Java 코드를 작성하는 데 사용되는 일반적인 텍스트 편집기 중 하나입니다. Windows 시스템이 있는 경우 메모장 텍스트 편집기를 사용하여 Java 코드를 작성할 수 있습니다. 다른 플랫폼은 Netbeans입니다. 이것은 통합 개발 환경(IDE) . Windows, Linux, Solaris 및 macOS 시스템에서 Netbeans를 다운로드할 수 있습니다. Java용 또 다른 텍스트 편집기는 Eclipse입니다. 여러 프로그래밍 언어를 위한 텍스트 편집기로서의 Eclipse 서버. Windows, Linux 및 macOS 시스템에서 Eclipse를 다운로드할 수 있습니다.

Gson 예제를 보기 전에 Java 클래스 이름인 'GsonEmployee'라는 이름으로 Java 파일을 생성하는 것을 잊지 마십시오. 나중에 'GsonEmployee' Java 파일이 C:>GSON_WORKSPACE에 있는지 확인합니다. .java 확장자를 사용하여 이 디렉토리에 파일을 저장합니다.

예시:

|_+_|

산출:

위의 Gson 코드를 실행하려면 아래 단계를 따르십시오.

  1. 'javac'라는 키워드를 사용하여 위의 코드를 완성하세요.
|_+_|
  1. 컴파일 후 'java' 키워드를 사용하여 코드를 실행합니다.
|_+_|
  1. 코드에 오류가 없으면 위의 Gson 코드의 결과가 표시됩니다.
|_+_|

다음은 Gson 개체를 생성, 직렬화 및 역직렬화하는 방법에 대한 간단한 안내서입니다.

  • 먼저 GsonBuilder() 함수를 사용하여 재사용 가능한 Gson 객체를 생성해야 합니다.
|_+_|
  • Gson 객체를 생성한 후에는 JSON 문자열을 Java 객체로 역직렬화해야 합니다. 이를 위해 fromJson() 함수를 사용합니다. 이 함수에서는 JSON 문자열과 객체 유형이라는 두 개의 매개변수를 전달해야 합니다.
|_+_|
  • 나중에 toJson() 함수를 사용하여 Java 객체를 JSON 문자열로 직렬화해야 합니다. 이 함수에는 객체라는 하나의 매개변수만 필요합니다.
|_+_|

Gson - 객체 직렬화

Gson 객체 직렬화는 Java 객체를 JSON 문서로 읽은 다음 JSON 문서를 Java 객체로 읽는 것을 의미합니다. 한 가지 예를 들어 Gson 객체 직렬화가 어떻게 일어나는지 알려주십시오. 위에서 논의한 것과 동일한 Employee 예를 들어보겠습니다. Employee의 ID, 이름, 나이, 직위를 표시했습니다. 이 예에서는 동일한 결과를 보여주고 Gson 객체 직렬화를 살펴봅니다.

마찬가지로 GsonEmployee라는 클래스를 만들고 이 파일을 C:>GSON_WORKSPACE에 저장해야 합니다. 파일 이름을 GsonEmployee.java로 저장하는 것을 잊지 마십시오.

예시

|_+_|

산출:

위의 코드를 실행하려면 위에서 지정한 단계를 따라야 합니다.

  • 코드를 컴파일하려면 'javac' 키워드를 사용합니다.
|_+_|
  • 컴파일이 완료되면 'java' 키워드를 사용하여 코드를 실행합니다.
|_+_|
  • 이 코드의 결과는 위와 동일하며 직원의 이름, 나이 및 직위를 표시합니다.
|_+_|

지손 클래스

Gson 객체를 직렬화하는 방법을 살펴보았습니다. 즉, Java 객체를 해당 JSON 문자열로, JSON 문자열을 해당 Java 객체로 읽어왔습니다. 이제 Gson 클래스로 이동합니다.

Gson은 Google Gson 라이브러리의 주요 클래스입니다. Gson 클래스는 Java 객체를 JSON 문자열로 변환하고 JSON 문자열을 각각의 Java 객체로 변환하는 역할을 합니다. Gson 클래스의 경우 먼저 GsonBuilder() 함수를 사용한 다음 toJson() 및 fromJson() 함수를 사용하여 JSON 문자열을 읽고 써야 합니다. 다음은 com.google.gson.Gson에 대한 클래스 선언 구문입니다.

통사론:

|_+_|

지손 빌더

Java 코드에서 사용할 Gson 생성자가 있습니다. Gson()으로 정의됩니다. Gson() 생성자는 Gson 객체를 생성합니다. Gson()에 전달된 매개변수가 없으므로 기본 구성을 사용합니다.

Gson 클래스 메서드

이제 Gson 클래스 메서드로 이동합니다. 다음은 설명과 함께 몇 가지 효과적인 Gson 클래스 메서드입니다.

    T fromJson(JsonElement json, 클래스 classOfT):

위의 Gson 클래스 메서드는 특정 구문 분석 트리를 사용하여 Json에서 읽은 Json을 특정 개체 유형으로 역직렬화합니다.

    T fromJson(JsonElement json, typeOfT):

이 메소드도 위의 메소드와 같은 용도로 사용됩니다. 특정 구문 분석 트리에서 읽은 Json을 사용하고 이를 동등한 객체 유형으로 변환합니다.

    T fromJson(리더 json, 유형 typeOfT):

위의 Gson 클래스 메서드는 Json을 특정 판독기에서 읽어 특정 객체 유형으로 역직렬화합니다.

    T fromJson(JsonReader 리더, TypeOfT):

위의 Gson 클래스 메서드를 사용하여 특정 판독기에서 다음 JSON 문자열 또는 값을 읽을 수 있습니다. 읽은 후 이 메소드는 JSON 값을 typeOfT 객체로 변환합니다.

    T fromJson(리더 json, 클래스 classOfT):

이 Gson 클래스 메서드는 특정 판독기에서 읽은 JSON을 가져와 지정된 클래스 개체로 역직렬화합니다.

    TypeAdapter getDelegateAdapter(TypeAdapterFactory skipPast, TypeToken 유형):

특정 유형에 대한 대체 유형 어댑터가 필요한 경우 위의 Gson 클래스 메소드를 사용할 수 있습니다.

    TypeAdapter getAdapter(클래스 유형):

이 Gson 클래스 메소드는 특정 유형에 대한 유형 어댑터를 가져오는 데 사용됩니다.

    T fromJson(문자열 json, 클래스 classOfT):

JSON 문자열을 특정 클래스 개체로 역직렬화하려면 위의 Gson 클래스 메서드를 사용할 수 있습니다.

    TypeAdapter getAdapter(TypeToken 유형):

특정 유형에 대한 유형 어댑터를 얻으려면 다시 사용할 Gson 방법 중 하나입니다.

    T fromJson(문자열 json, 유형 typeOfT):

위의 Gson 클래스 메소드는 JSON 문자열을 특정 유형의 객체로 변환합니다.

    void toJson(Object src, 추가 가능한 작성기):

특정 Java 객체를 해당 JSON 표현으로 직렬화하기 위해 위의 Gson 메소드가 사용됩니다.

    무효 toJson(JsonElement jsonElement, JsonWriter 작성자):

위의 Gson 클래스 메소드는 jsonElement에 대한 작성자에게 JSON을 작성하는 데 사용됩니다.

    문자열 toJson(JsonElement jsonElement):

JSON 요소는 트리와 같은 구조로 배열됩니다. JSON 요소를 동등한 표현으로 표현하려면 위의 Gson 메서드를 사용해야 합니다.

    문자열 toJson(객체 src):

위의 방법은 특정 Java 개체를 해당 JSON 문자열 또는 표현으로 직렬화하는 데 사용되는 또 다른 Gson 방법입니다.

    void toJson(JsonElement jsonElement, 추가 가능한 작성기):

트리의 모든 JsonELements에 대해 위의 Gson 클래스 메서드는 동등한 JSON을 작성합니다.

    void toJson(객체 src, 유형 typeOfSrc, 추가 가능한 작성기):

이 Gson 메서드는 특정 개체를 해당 JSON 문자열로 직렬화하는 데 사용됩니다. 또한 제네릭 형식 개체를 직렬화합니다.

    JsonElement toJsonTree(객체 src):

위의 Gson 메서드는 특정 Java 객체를 해당 JSON 값으로 변환합니다. JsonElements 트리의 JSON 값을 나타냅니다.

    문자열 toJson(객체 src, 유형 typeOfSrc):

다시 말하지만, 위의 방법은 모든 일반 유형을 포함하여 특정 Java 개체를 해당 JSON 값으로 변환하는 Gson 클래스의 한 방법입니다.

    void toJson(객체 src, 유형 typeOfSrc, JsonWriter 작성자):

이 Gson 메서드는 typeOfSrc 유형의 src를 작성자에 대한 JSON 표현으로 쓰는 데 사용됩니다.

    JsonElement toJsonTree(객체 src, 유형 typeOfSrc):

위의 방법은 모든 일반 유형을 포함한 특정 Java 객체를 특정 JSON 표현으로 변환합니다. JsonElements 트리의 JSON 값을 나타냅니다.

Gson 클래스는 java.lang.Object 클래스에서 위의 모든 메소드를 상속합니다. 직원 ID, 이름, 나이 및 직위를 표시하는 한 가지 예를 살펴보겠습니다. 파일 이름과 동일한 클래스 이름을 사용해야 합니다. Java 파일을 C:/>GSON_WORKSPACE에 저장했다고 생각해 보십시오. 아래에 언급된 예에서 파일 이름은 GsonEmployee2.java입니다.

예시:

|_+_|

산출:

자바 코드를 작성하여 클래스명과 유사한 이름으로 저장한 후 컴파일을 해야 한다. 컴파일을 위해 아래 명령을 사용하십시오.

|_+_|

Java 파일 GsonEmployee2.java가 컴파일됩니다.

컴파일 후 아래 명령을 사용하여 실행했습니다.

|_+_|

출력은 다음과 같이 표시됩니다.

|_+_|

Gson의 데이터 바인딩

우리는 Gson에서 제공하는 세 가지 다른 형태의 JSON 처리를 보았습니다. Gson의 JSON 처리 형식 중 하나는 데이터 바인딩입니다. 데이터 바인딩 처리 양식을 사용하여 JSON을 POJO(Plain Old Java Object)로, POJO를 JSON으로 변환할 수 있습니다. JSON과 POJO 간의 변환은 속성 접근자 또는 주석을 사용하여 발생합니다. 속성 접근자 주석에는 기본 데이터 바인딩 및 개체 데이터 바인딩의 두 가지 유형이 있습니다.

기본 데이터 바인딩: 이 속성 접근자 또는 주석은 JSON을 Maps, Strings, Booleans, Lists 및 Null과 같은 다양한 Java 데이터 유형의 개체로 변환합니다. 또한 언급된 모든 객체 데이터 유형을 JSON으로 변환합니다.

개체 데이터 바인딩: 개체 데이터 바인딩은 JSON 값을 JAVA 유형으로 또는 그 반대로 변환합니다.

JSON 처리의 데이터 바인딩 접근 방식은 XML의 JAXB 구문 분석과 유사합니다. Gson은 위의 두 가지 데이터 바인딩 유형에서 JSON 값을 읽고 쓸 수 있습니다. 아래에서 각 데이터 바인딩 유형에 대해 자세히 살펴보겠습니다.

기본 데이터 바인딩

JSON 처리를 위한 기본 데이터 바인딩 접근 방식은 JSON 값을 Java 데이터 유형으로 변환합니다. 데이터 바인딩 접근 방식에서 Gson은 여러 내장 어댑터를 제공합니다. 이러한 어댑터는 기본 데이터 유형을 직렬화 및 역직렬화하는 데 사용됩니다. JSON 처리를 위한 Gson의 프리미티브 데이터 바인딩 방법을 하나의 예를 통해 이해하자.

다음은 JSON과 Java 기본 데이터 유형 간의 변환을 보여주는 예입니다. 파일 이름은 클래스 이름과 같아야 함을 기억해야 합니다. 파일을 C:>GSON_WORKSPACE에 저장합니다. 아래 예에서 파일 이름은 GsonEmployee3.java입니다.

예시:

|_+_|

산출:

먼저 아래 명령을 사용하여 위의 코드를 컴파일해야 합니다.

|_+_|

컴파일 후에는 아래 명령어를 사용하여 코드를 실행해야 합니다.

|_+_|

다음 출력이 표시됩니다.

|_+_|

여기에서 프리미티브 데이터 바인딩 접근 방식을 사용하여 직렬화 및 역직렬화 후 생성된 출력 간의 차이점을 명확하게 관찰할 수 있습니다.

개체 데이터 바인딩

이제 JSON 처리를 위한 Gson의 Object Data Binding 접근 방식으로 이동합니다. 이 접근 방식은 JSON 값을 모든 JAVA 유형에 매핑하고 모든 Java 개체를 해당 JSON 표현에 매핑합니다. 개체 데이터 바인딩 프로세스는 아래에 설명되어 있습니다.

  1. 먼저 Gson() 메서드를 사용하여 Gson 인스턴스를 생성해야 합니다.
|_+_|
  1. 이제 Java 객체를 JSON 값으로 변환합니다. Employee 클래스에 대한 emp로 Java 객체를 고려하십시오.
|_+_|
  1. 마지막으로 JSON 값 또는 문자열을 해당 Java 객체로 변환합니다. Employee 클래스를 고려하고 객체를 emp1로 사용합니다.
|_+_|

위의 단계를 사용하여 개체 데이터 바인딩 접근 방식의 간단한 예를 실행합니다. 클래스 이름을 GsonEmployee4로 사용합니다. 따라서 파일 이름은 GsonEmployee4.java로 저장해야 합니다. 이 예에서는 이름, ID, 직위, 연령 및 도시가 포함된 직원 정보를 표시합니다.

예시:

|_+_|

산출:

이제 코드를 컴파일해야 합니다. 컴파일을 위해 아래 명령을 따르십시오.

|_+_|

명령을 사용하여 코드를 실행하고,

|_+_|

다음과 같은 결과를 얻을 수 있습니다.

|_+_|

여기에서 예제를 통해 JSON 처리를 위한 Gson의 데이터 바인딩 접근 방식을 관찰했습니다. 이제 또 다른 JSON 처리 방식을 살펴보겠습니다.

Gson의 스트리밍 API

Streaming API는 JSON 처리를 위한 또 다른 Gson의 형식입니다. 스트리밍 API 접근 방식에서는 JSON 값을 토큰으로 읽고 씁니다. 이 접근 방식은 각 JSON 값을 개별 이벤트로 간주합니다. 여기서 JsonReader는 JSON 데이터를 읽고 JsonWriter는 Json 데이터를 토큰으로 씁니다. 따라서 JsonToken이라고 합니다.

스트리밍 API는 모든 JSON 데이터를 주의 깊게 모니터링하는 것으로 잘 알려져 있습니다. 이 기사에서는 스트리밍 API 메서드를 사용하여 JSON 데이터를 읽는 방법을 살펴보겠습니다. JSON 데이터에 대한 읽기 프로세스는 다음과 같이 수행됩니다.

  • JSON 데이터 읽기에 중점을 두고 있으므로 JsonReader() 함수를 사용합니다. 먼저 JsonReader() 함수의 객체를 생성하고 이 객체를 JSON 텍스트에 전달해야 합니다.
|_+_|

여기서 'jsread'는 JsonReader() 함수의 객체입니다.

  • 객체를 생성한 후 해당 객체로 JSON 텍스트 읽기를 시작하고 토큰을 가져옵니다.
|_+_|
  • 마지막으로 JSON 텍스트를 읽은 후 받는 토큰 유형을 확인해야 합니다.
|_+_|

JsonReader의 한 예를 보겠습니다. 클래스 이름을 EmployeeRead로 사용합니다. 파일 이름을 C:에 EmployeeRead.java로 저장해야 합니다.

예시:

|_+_|

산출:

위의 코드를 컴파일하려면 다음과 같이 명령을 입력하십시오.

|_+_|

컴파일 후, 아래 코드 줄을 사용하여 프로그램을 실행하십시오.

|_+_|

출력은 다음과 같습니다.

|_+_|

이것은 JSON 처리를 위한 스트리밍 API 접근 방식에 관한 것이었습니다. 이제 최종 형식인 Tree Model로 이동해 보겠습니다.

Gson의 나무 모델

Gson이 제공하는 JSON 처리의 마지막 접근 방식은 Tree Model입니다. 이름에서 알 수 있듯이 JSON 문서를 트리 구조로 나타냅니다. 이 트리와 같은 구조에는 JsonObject 노드가 포함됩니다. 트리 모델은 XML의 DOM 파서와 유사합니다. 이제 트리를 만드는 방법과 트리를 가로지르는 방법을 살펴보겠습니다.

JSON 문서에서 트리를 만드는 방법은 무엇입니까?

JSON 문서에서 트리를 생성하기 위해 JsonParser() 메서드를 사용합니다. JsonParser() 메서드에는 JSON 문서를 읽고 트리의 루트를 가리키는 포인터가 있습니다. 단일 루트 노드를 사용하여 전체 트리를 순회할 수 있습니다. 다음은 JSON 데이터에서 트리를 만드는 데 도움이 되는 작은 코드입니다.

JSON 데이터에서 트리를 생성하려면 다음 단계를 따르세요.

  • JsonParser() 메소드는 트리를 생성하는 데 사용됩니다. 첫 번째 단계는 JsonParser() 메서드의 인스턴스 또는 객체를 만드는 것입니다.
|_+_|

여기서 'jsparser'는 JsonParser() 메소드의 객체입니다.

  • 다음 단계는 트리와 같은 구조로 묘사하려는 문자열 또는 JSON 데이터를 지정하는 것입니다.
|_+_|
  • 마지막 단계는 위에서 지정한 데이터에서 트리를 만드는 것입니다.
|_+_|

나무를 가로지르는 방법?

우리는 JSON 데이터에서 트리를 만드는 방법을 보았습니다. 이제 JSON 문서에서 설계된 트리를 탐색하는 방법을 관찰합니다. 트리를 탐색하려면 특정 노드에서 루트 노드까지의 모든 노드 경로를 확인해야 합니다. 다음은 나무를 횡단하는 방법을 안내하는 작은 코드입니다.

|_+_|

이것은 트리를 순회하는 더 간단한 예입니다. 이제 JSON 데이터에서 트리를 만들고 탐색하는 단일 인스턴스가 있습니다. 클래스 이름을 GsonTree로 생성합니다. 따라서 반드시 C:>Gson_WORKSPACE에 GsonTree.java라는 이름으로 파일을 저장해야 합니다.

예시:

|_+_|

산출:

위의 프로그램을 컴파일하려면 아래 명령을 사용하십시오.

|_+_|

컴파일 후, 아래 코드를 사용하여 실행해야 합니다.

|_+_|

출력은 다음과 같이 표시됩니다.

|_+_|

Gson이 제공하는 세 가지 JSON 처리 형식을 각각의 예와 함께 보았습니다. 이제 Gson에서 직렬화 및 역직렬화 예제를 실행해 보겠습니다.

Gson의 직렬화 및 역직렬화 예제

이 섹션에서는 Gson의 쉽고 간단한 직렬화 및 역직렬화 예제를 제공합니다. 배열, 컬렉션 및 일반 유형의 예를 살펴보겠습니다.

Gson의 배열 예

배열 직렬화 및 역직렬화에 대한 더 나은 이해를 위해 여기에 작은 코드를 제시합니다.

|_+_|

이제 배열 직렬화 및 역직렬화를 이해할 수 있는 완전한 코드를 실행합니다. GsonColor 클래스를 생성합니다. C:>GSON_WORKSPACE에 GsonColor.java라는 Java 파일을 저장해야 합니다.

예시:

|_+_|

산출:

위의 코드를 컴파일하려면 아래 명령을 입력하십시오.

|_+_|

다음 명령을 사용하여 위의 코드를 실행합니다.

|_+_|

출력은 다음과 같이 표시됩니다.

|_+_|

Gson의 제네릭 예제

Gson에는 Java 리플렉션 API가 있습니다. 이 API는 JSON 문자열 또는 값이 매핑되는 개체 유형을 식별하는 데 유용합니다. Gson에서 제네릭을 사용하는 경우 해당 객체 유형에 표시된 JSON 값은 직렬화에서 사용할 수 없습니다. 따라서 Gson 제네릭에서 이러한 문제를 극복하기 위해 com.google.gson.reflect.TypeToken이라는 클래스가 있습니다. 이 클래스의 주요 기능은 일반 객체를 보유하는 것입니다.

아래에 하나의 제네릭 유형 예제가 있습니다. GsonGenerics라는 클래스를 만들어 보겠습니다. Java 프로그램 파일을 C:>GSON_WORKSPACE에 GsonGenerics.java라는 이름으로 저장해야 합니다.

예시

|_+_|

산출

명령을 사용하여 위의 코드를 컴파일하십시오.

|_+_|

아래 명령을 사용하여 코드를 실행하십시오.

|_+_|

위의 프로그램을 실행하면 다음과 같은 출력이 생성됩니다.

|_+_|

Gson의 컬렉션 예제

Gson의 컬렉션 예제에는 ArrayList() 메서드가 포함되어 있습니다. 다음은 Gson의 직렬화 및 역직렬화 컬렉션 예제를 이해하기 위한 작은 코드 잠금입니다.

|_+_|

이것은 작은 코드였습니다. 이제 Gson에서 컬렉션의 직렬화 및 역직렬화를 나타내는 더 큰 코드 줄을 살펴보겠습니다. GsonCollection 클래스를 만들고 Java 프로그램 파일을 GsonCollection.java라는 이름으로 저장합니다. 파일을 C:>GSON_WORKSPACE에 저장합니다.

예시

|_+_|

산출

아래 명령을 사용하여 파일을 컴파일하고,

|_+_|

명령 프롬프트에서 다음 명령을 입력하여 위의 파일을 실행합니다.

|_+_|

다음은 Gson에서 위의 수집 프로그램의 결과입니다.

|_+_|

결론

Gson은 JSON 문자열 또는 값을 해당 Java 개체로 변환하고 Java 개체를 해당 JSON 문자열 또는 값으로 변환할 수 있는 툴킷입니다. Gson은 JSON에 대해 세 가지 다른 처리 방식을 제공합니다.

  • 데이터 바인딩은 JSON 값을 POJO로 변환하고 POJO를 해당 JSON 값으로 변환합니다.
  • 스트리밍 API 접근 방식은 JSON 데이터를 토큰으로 읽고 쓰기 위해 JsonReader 및 JsonWriter를 사용합니다.
  • 트리 모델 방식은 JSON 문서를 트리와 같은 구조로 표현합니다.

Gson에 대한 환경 변수를 설정하는 방법을 살펴보았습니다. Gson 환경 변수를 설정한 후 Gson 코드를 실행합니다. 다음으로 객체 직렬화의 예를 볼 수 있습니다. 객체 직렬화에서 JSON 문서는 Java 객체로 읽고 Java 객체는 해당 JSON 문서로 읽힙니다.

다음으로 간단한 Gson 프로그램과 Gson 클래스 메서드를 살펴보았습니다. 각 JSON 처리 방식, 데이터 바인딩, 트리 모델 및 스트리밍 API는 각각 하나의 예제로 설명됩니다. 나중에 Gson에서 직렬화 및 역직렬화 예제를 다루었습니다. 배열 예제, 제네릭 형식 예제, 컬렉션 예제를 실행했습니다.