Java에서 JSON 역직렬화

Sheeraz Gul 2023년10월12일
  1. Java에서 JSON 역직렬화
  2. JSON-Java API를 사용하여 JSON 역직렬화
  3. Jackson API를 사용하여 JSON 역직렬화
Java에서 JSON 역직렬화

이 자습서는 Java에서 JSON을 역직렬화하는 방법을 보여줍니다.

Java에서 JSON 역직렬화

JSON 작업에 사용되는 다양한 라이브러리가 제공됩니다. 이러한 라이브러리는 Java에서 JSON 개체를 직렬화 및 역직렬화할 수도 있습니다.

JSON-Java API를 사용하여 JSON 역직렬화

Java에서 JSON 개체의 직렬화 및 역직렬화를 처리하는 라이브러리 JSON-Java가 있습니다. 이 라이브러리는 JSON 개체 또는 문서를 Java 개체로 구문 분석하거나 Java 클래스에서 JSON 개체 문서를 생성합니다.

이 라이브러리는 Java의 Gradle을 사용하여 추가할 수 있습니다. JSON-Java의 Gradle 종속성은 다음과 같습니다.

implementation 'org.json:json:20210307'

JSON-Java는 다양한 기능을 제공하며 다른 많은 유사한 라이브러리보다 우수합니다. 주요 기능은 다음과 같습니다.

  1. 이전 버전과의 호환성
  2. 외부 종속성이 없습니다.
  3. 실행 속도가 빠르고 메모리 사용량이 적습니다.
  4. 일관되고 신뢰할 수 있는 결과
  5. JSON 사양을 준수합니다.
import org.json.JSONObject;

public class Example {
  public static void main(String[] args) {
    String JSON_Object = "" "
    {
      "name" : "Sheeraz Gul",
               "occupation" : "Software Engineer",
                              "salary" : "6000",
                                         "height" : "186.6",
                                                    "married" : "false"
    }
    "" ";

        var User_Info = new JSONObject(JSON_Object);

    System.out.println(User_Info.get("name"));
    System.out.println(User_Info.get("occupation"));
    System.out.println(User_Info.get("salary"));
    System.out.println(User_Info.get("height"));
    System.out.println(User_Info.get("married"));
  }
}

위의 코드는 JSON 개체를 Java 개체로 역직렬화합니다. 출력 참조:

Sheeraz Gul
Software Engineer
6000
186.6
false

Jackson API를 사용하여 JSON 역직렬화

‘Jackson’은 Java에서 JSON 작업을 위한 오픈 소스 라이브러리입니다. 라이브러리는 Java에서 JSON 개체를 직렬화 및 역직렬화할 수 있습니다.

라이브러리에는 직렬화 및 역직렬화를 위한 두 가지 주요 방법이 있습니다.

  1. writeValue(...): Java 개체를 JSON 개체로 변환하는 데 사용됩니다. (직렬화)
  2. readValue(...): JSON 개체를 Java 개체로 변환하는 데 사용됩니다. (역직렬화)

Jackson은 maven 프로젝트에 추가하여 사용할 수 있습니다. Jackson API의 종속성은 다음과 같습니다.

<dependency>
		<groupId>org.codehaus.jackson</groupId>
		<artifactId>jackson-mapper-asl</artifactId>
		<version>1.9.13</version>
	</dependency>

이 종속성은 Jackson 1.x에 대한 것입니다. 최신 버전인 Jackson 2.x도 있습니다. JSON 개체를 Java 개체로 역직렬화하는 예제를 살펴보겠습니다.

package delftstack;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class Example {
  public static void main(String[] args) {
    ObjectMapper Object_Mapper = new ObjectMapper();

    try {
      // JSON string from file to java Object
      User User_File = Object_Mapper.readValue(new File("G:\\delftstack.json"), User.class);
      System.out.println(User_File);

      // JSON string to java Object
      String jsonInString = "{\"name\":Sheeraz,\"salary\":\"6000\", \"company\":\"Delftstack\"}";
      User User_String = Object_Mapper.readValue(jsonInString, User.class);
      System.out.println(User_String);

    } catch (JsonGenerationException e) {
      e.printStackTrace();
    } catch (JsonMappingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

위의 코드는 JSON 개체를 파일 및 문자열에서 Java 개체로 역직렬화합니다. 파일과 문자열 모두 동일한 JSON 개체를 포함합니다.

출력 참조:

User [name=Sheeraz, Salary=6000, Company=Delftstack]

User [name=Sheeraz, Salary=6000, Company=Delftstack]
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java JSON