HOWTO · Java
Java에서 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는 다양한 기능을 제공하며 다른 많은 유사한 라이브러리보다 우수합니다. 주요 기능은 다음과 같습니다.
- 이전 버전과의 호환성
- 외부 종속성이 없습니다.
- 실행 속도가 빠르고 메모리 사용량이 적습니다.
- 일관되고 신뢰할 수 있는 결과
- 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 개체를 직렬화 및 역직렬화할 수 있습니다.
라이브러리에는 직렬화 및 역직렬화를 위한 두 가지 주요 방법이 있습니다.
writeValue(...): Java 개체를 JSON 개체로 변환하는 데 사용됩니다. (직렬화)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]