Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 Gson 라이브러리를 가져오는 방법

Java 9 JShell에서 Gson 라이브러리 가져오기

Java 9JShell이라는 대화형 REPL(Read-Eval-Print Loop) 명령줄 도구를 새롭게 도입했습니다. JShell을 사용하면 자바 코드 조각을 즉시 실행하고 그 결과를 바로 확인할 수 있습니다. 또한 클래스패스(classpath)를 통해 외부 클래스를 JShell 세션에서 불러와 사용할 수도 있습니다.

Gson 라이브러리는 자바에서 널리 사용되는 직렬화/역직렬화(serialization/deserialization) 라이브러리로, 자바 객체를 JSON으로 변환하거나 그 반대로 변환하는 작업을 손쉽게 처리해 줍니다.

1단계: JShell에서 클래스패스 설정하기

JShell에서 외부 라이브러리를 사용하려면 먼저 /env 명령어로 클래스패스를 지정해야 합니다. 아래 예제처럼 Gson jar 파일의 경로를 설정할 수 있습니다.

jshell> /env --class-path C:\Users\User\gson.jar
| Setting new options and restoring state.

2단계: Gson 패키지 임포트 및 확인

Gson 라이브러리가 클래스패스에 등록되면 import 구문으로 패키지를 불러올 수 있습니다. 이후 /import 명령어를 실행하면 현재 세션에 로드된 모든 패키지 목록에서 com.google.gson.*이 포함된 것을 확인할 수 있습니다.

jshell> import com.google.gson.*

jshell> /import
|    import java.io.*
|    import java.math.*
|    import java.net.*
|    import java.nio.file.*
|    import java.util.*
|    import java.util.concurrent.*
|    import java.util.function.*
|    import java.util.prefs.*
|    import java.util.regex.*
|    import java.util.stream.*
|    import com.google.gson.*

jshell> Gson g = new GsonBuilder().setPrettyPrinting().create()
g ==> {serializeNulls:false,factories:[Factory[typeHier ... 78b9],instanceCreators:{}}

위 예제에서는 GsonBuildersetPrettyPrinting() 메서드를 호출해 JSON 출력 시 들여쓰기가 적용되도록 Gson 인스턴스를 생성했습니다.

3단계: Employee 클래스 정의하기

아래 코드 스니펫에서는 테스트용 Employee 클래스를 정의합니다. 이름, 성, 직책, 근무지 정보를 필드로 가지며, 각 필드에 대한 getter 메서드와 toString() 메서드를 포함하고 있습니다.

jshell> class Employee {
...>        private String firstName;
...>        private String lastName;
...>        private String designation;
...>        private String location;
...>        public Employee(String firstName, String lastName, String desigation, String location) {
...>            this.firstName = firstName;
...>            this.lastName = lastName;
...>            this.designation = designation;
...>            this.location = location;
...>        }
...>        public String getFirstName() {
...>            return firstName;
...>        }
...>        public String getLastName() {
...>            return lastName;
...>        }
...>        public String getJobDesignation() {
...>            return designation;
...>        }
...>        public String getLocation() {
...>            return location;
...>        }
...>        public String toString() {
...>            return "Name = " + firstName + ", " + lastName + " | " +
...>                   "Job designation = " + designation + " | " +
...>                   "location = " + location + ".";
...>        }
...>    }
| created class Employee

4단계: 객체 생성 및 JSON 직렬화

Employee 인스턴스를 생성한 뒤, 앞서 만든 Gson 객체의 toJson() 메서드를 사용해 객체를 JSON 문자열로 직렬화할 수 있습니다.

jshell> Employee e = new Employee("Jai", "Adithya", "Content Developer", "Hyderabad");
e ==> Name = Jai, Adithya | Job designation = Content D ... er | location = Hyderabad.

jshell> String empSerialized = g.toJson(e)
empSerialized ==> "{\n  \"firstName\": \"Jai\",\n  \"lastName\": \" ... ation\": \"Hyderabad\"\n}"

5단계: 결과 출력 및 역직렬화

직렬화된 JSON 문자열을 출력해 보면 다음과 같습니다. 이어서 fromJson() 메서드를 사용하면 JSON 문자열을 다시 Employee 객체로 역직렬화할 수 있습니다.

jshell> System.out.println(empSerialized)
{
   "firstName": "Jai",
   "lastName": "Adithya",
   "designation": "Content Developer",
   "location": "Hyderabad"
}
jshell> Employee e1 = g.fromJson(empSerialized, Employee.class)
e1 ==> Name = Jai, Adithya | Job designation = Content D ... er | location = Hyderabad.

이처럼 JShell과 Gson 라이브러리를 함께 활용하면 별도의 프로젝트 설정 없이도 대화형 환경에서 자바 객체와 JSON 간의 변환 과정을 빠르게 실험하고 학습할 수 있습니다.