JSON은 Javascript Object Notation의 약자로 현재 대부분의 프로그래밍 언어가 읽을 수 있는 특정 규칙을 따르는 데이터 형식입니다. 파일로 쉽게 저장하거나 데이터베이스에 기록할 수 있습니다. JSON 형식은 키-값 쌍을 사용하여 데이터를 설명합니다.
따라서 JSON 구문은 매우 간단합니다. 각 데이터 정보는 필드 이름과 특정 레코드의 값에 해당하는 키와 값의 두 부분으로 구성됩니다. 그러나 자세히 살펴보면 다음과 같은 몇 가지 사항이 있습니다.
JSON 문자열은 중괄호 {}로 묶여 있습니다.
JSON의 키와 값은 따옴표 {“}로 묶어야 합니다.
데이터가 더 많은 경우(더 많은 키 => 값 쌍) 쉼표(,)를 사용하여 구분합니다.
JSON 키는 부호 없는 문자 또는 숫자, _, 공백이 없어야 하며 첫 번째 문자는 숫자로 설정하면 안 됩니다.
이 튜토리얼에서는 배우게 될 것입니다-
JSON이란 무엇입니까?
XML이란 무엇입니까?
지손이란?
JAXB란 무엇입니까?
XML을 JSON으로 변환하는 방법
JAXB를 사용하여 XML 메시지를 Java 객체로 변환
Gson을 사용하여 Java 객체를 JSON 메시지로 변환
Gson을 사용하여 JSON 메시지를 Java 객체로 변환
JAXB를 사용하여 Java 객체를 XML 메시지로 변환
XML이란 무엇입니까?
XML은 다른 마크업 언어를 만들기 위해 World Wide Web Consortium(https://www.w3.org/)에서 제안한 확장 가능한 마크업 언어라고도 하는 eXtensible Markup Language의 약자입니다. 이것은 다양한 유형의 데이터를 설명할 수 있는 간단한 하위 집합이므로 시스템 간에 데이터를 공유하는 데 매우 유용합니다.
XML의 태그는 미리 정의되지 않은 경우가 많지만 사용자 규칙에 따라 생성됩니다. XML은 HTML의 장점을 기반으로 한 새로운 기능을 도입했습니다.
다양한 시스템 및 솔루션에는 다음과 같은 유용한 XML 작성 기능이 있습니다.
XML은 확장 가능합니다. XML을 사용하면 애플리케이션에 맞게 사용자 정의 태그를 생성할 수 있습니다.
XML은 데이터를 표시하는 것이 아니라 전달합니다. XML을 사용하면 데이터가 표시되는 방식에 관계없이 데이터를 저장할 수 있습니다.
XML은 공통 표준입니다. XML은 W3C(World Wide Web Consortium)에서 개발했으며 공개 표준으로 제공됩니다.
XML은 중첩 노드 구조를 기반으로 합니다. 각 노드에는 다음과 같이 여는 태그와 닫는 태그가 있습니다.
<node>content</node>
중:
<노드> 은(는) 열린 태그이고 이 태그의 이름은 사용자가 정의합니다.
닫힌 태그인 경우 이 태그의 이름은 열린 태그의 이름과 일치해야 합니다.
콘텐츠 이 태그의 내용입니다.
각 XML 파일의 맨 위에는 XML이 사용 중인 버전을 나타내는 태그를 선언해야 합니다. 명령어 태그의 구문:
Gson(https://github.com/google/gson)은 사용자가 Java 개체에서 JSON 문자열로 변환하고 JSON 문자열에서 Java 개체로 변환할 수 있도록 하는 Java 라이브러리입니다. Gson은 소스 코드 없이 기존 개체를 포함한 임의의 Java 개체로 작업할 수 있습니다.
버전 1.6부터 Gson은 JsonReader라는 두 가지 새로운 클래스를 도입했습니다. 및 JsonWriter JSON 데이터에 대한 스트리밍 처리를 제공합니다.
JsonWriter – JSON에 스트리밍 쓰기. 일반적인 구현을 위한 구문은 다음과 같습니다. JsonWriter를 만듭니다. 물체. JSON 문자열 생성을 시작하고 끝내기 위해 beginObject() 함수를 사용합니다. 및 endObject(). 이 두 함수를 실행하는 도중에 쌍(key => value)으로 데이터 쓰기를 수행합니다.
JsonWriter writer = new JsonWriter();
writer.beginObject();
writer.name("key").value("value");
writer.endObject();
JsonReader – JSON에서 스트리밍 읽기. 일반적인 구현을 위한 구문은 다음과 같습니다. JsonReader 객체를 생성합니다. JSON 문자열 생성을 시작하고 끝내기 위해 beginObject() 및 endObject() 함수를 사용합니다. 이 두 함수를 실행하는 도중에 쌍(key => 값)으로 데이터 읽기를 수행합니다.
JsonReader reader = new JsonReader();
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("key")) {
String value = reader.nextString();
}
}
reader.endObject();
Gson 스트리밍 처리가 빠릅니다. 그러나 JSON 데이터 처리의 각 쌍(key => 값)을 처리해야 합니다.
JAXB란 무엇입니까?
JAXB는 Java Architecture for XML Binding의 약자로 주석을 사용하여 Java 객체를 XML 콘텐츠로 또는 그 반대로 변환하는 라이브러리입니다. JAXB는 사양을 통해 정의되므로 이 표준에 대해 다른 구현을 사용할 수 있습니다.
JAXB에서는 다음과 같은 기본 주석을 자주 사용합니다.
@XmlRootElement :이 주석은 XML 파일의 가장 바깥쪽 태그가 무엇인지 지정하므로 클래스의 맨 위에 선언됩니다.
@XmlElementWrapper :이 주석은 컬렉션 주위에 래퍼 XML 요소를 생성합니다.
@XmlElement :객체의 속성을 선언할 때 사용하는 이 주석은 XML 파일의 태그입니다.
@XmlAttribute :객체의 속성을 선언하는 데 사용되는 이 주석은 XML 파일의 태그입니다.
일반적인 구현을 위한 구문은 다음과 같습니다. 먼저 JAXBContext를 초기화합니다. MyObject가 있는 개체 변환할 개체입니다.
XMLService xmlService = new XMLService();
XMLModel xmlModel = new XMLModel();
Department department = new Department();
department.setRoles(roles);
department.setPersons(persons);
xmlModel.setDepartment(department);
xmlService.parseObjectToXml(filePathOut, xmlModel);
두 번째 과정입니다.
결론
이 튜토리얼에서 우리는 JAXB가 XML 데이터를 읽고 Gson이 그것을 JSON에 쓸 수 있는 한 가지 방법을 간략하게 배웠습니다. 반대로 Gson이 JSON 데이터를 읽고 JAXB가 XML에 쓰는 방식도 보았습니다.