[java] Gson 라이브러리의 중첩된 객체 처리 방법은?

Gson은 자동으로 중첩된 객체를 처리합니다. 즉, 객체 안에 객체가 포함되어 있는 경우 Gson은 내부 객체를 자동으로 분석하고 처리합니다. Gson은 두 번째 객체를 단순히 그 필드와 값을 처리하는 것으로 간주합니다.

예를 들어, 다음과 같이 중첩된 객체가 있는 클래스가 있다고 가정해 봅시다:

public class OuterObject {
    private String name;
    private InnerObject innerObj;
    
    // Getters and Setters
}

public class InnerObject {
    private int id;
    
    // Getters and Setters
}

위의 코드에서 OuterObject 클래스에는 nameinnerObj라는 필드가 있습니다. innerObjInnerObject 타입의 객체입니다.

Gson을 사용하여 JSON 문자열을 OuterObject 객체로 변환하려면 다음과 같이 코드를 작성할 수 있습니다:

String jsonString = "{\"name\":\"John\",\"innerObj\":{\"id\":123}}";
Gson gson = new Gson();
OuterObject outerObj = gson.fromJson(jsonString, OuterObject.class);

이제 outerObj 객체에는 name 필드에 “John”이, innerObj 필드에는 id 필드에 123이 설정된 값이 있습니다. Gson은 JSON 문자열의 내부 객체까지 자동으로 처리하므로 별도의 설정이 필요하지 않습니다.

Gson을 사용하여 자바 객체를 JSON 문자열로 직렬화하려면 다음과 같이 코드를 작성할 수 있습니다:

OuterObject outerObj = new OuterObject();
outerObj.setName("John");
InnerObject innerObj = new InnerObject();
innerObj.setId(123);
outerObj.setInnerObj(innerObj);

Gson gson = new Gson();
String jsonString = gson.toJson(outerObj);

이제 jsonString 변수에는 다음과 같은 JSON 문자열이 담겨 있습니다:

{
    "name": "John",
    "innerObj": {
        "id": 123
    }
}

Gson은 중첩된 객체를 처리하는 데 매우 효율적이고 간단한 방법을 제공하기 때문에 자바 객체와 JSON 데이터 간의 변환을 쉽게 할 수 있습니다. Gson의 자세한 내용은 Gson GitHub 레포지토리를 참조하시기 바랍니다.