데이터 바인딩 API는 JSON 변환 및 속성을 사용하여 액세스하거나 주석 POJO (일반 Java 객체)를 사용하는 데 사용됩니다. 다음은 두 가지 유형입니다.
간단한 데이터 바인딩 - Java 맵, 목록, 문자열, 숫자, 부울 및 널 객체에서 JSON을 변환합니다.
전체 데이터 바인딩 - JSON을 Java 유형으로 변환합니다. 우리는 다음 장에서 별도로 묶을 것입니다.
ObjectMapper는 JSON을 읽거나 씁니다. 두 가지 유형의 데이터 바인딩. 데이터 바인딩의 가장 편리한 방법은 XML 유사 JAXB 파서입니다.
간단한 데이터 바인딩
간단한 데이터 바인딩은 JAVA 코어 데이터 유형에 대한 JSON 매핑을 나타냅니다. 다음 표는 JSON 유형과 Java 유형의 관계를 나열합니다.
간단한 데이터 조작 바인딩을 살펴 보겠습니다. 여기서 우리는 Java Primitive 유형을 JSON을 직접 매핑 할 것입니다.
디렉토리 C :/> Jackson_workSpace에서 Jacksontester라는 Java 클래스 파일을 만듭니다.
파일 : jacksontester.java
import java.io.file; import java.io.ioexception; import java.util.hashmap; import java.util.map; import org.codehaus.jackson.jsongenerationException; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.jsonmappingexmence; org.codehaus.jackson.map.objectmapper; public class jacksontester {public static void main (String args []) {Jacksontester tester = new Jacksontester (); try {objectMapper mapper = new ObjectMapper (); map <string, object> StudentDatamap = new Hashmap <String, Object> (); int [] marks = {1,2,3}; 학생 학생 = 신입생 (); 학생. 세트 (10); student.setName ( "Mahesh"); // Java Object StudentDatamap.put ( "학생", 학생); // Java String StudentDatamap.put ( "이름", "Mahesh Kumar"); // Java Boolean StudentDatamap.put ( "venified", boolean.false); // array StudentDatamap.put ( "marks", marks); mapper.writeValue (새 파일 ( "Student.json"), StudentDatamap); // result student.json // {// "학생": { "name": "mahesh", "age": 10}, // "marks": [1,2,3], // "venified": false, // "name": "mahesh kumar"//} studentdatamap = mapper.readvalue (새 파일 ( "Student.json"); System.out.println (StudentDatamap.get ( "Student")); System.out.println (StudentDatamap.get ( "name")); System.out.println (StudentDatamap.get ( "verified")); System.out.println (StudentDatamap.get ( "marks")); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }}} 클래스 학생 {개인 문자열 이름; 사적인 int 연령; 공개 학생 () {} public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public int getage () {반환 연령; } public void 설정 (int Age) {this.age = age; } public string toString () {return "reption"학생 [이름 : "+ name+", age : "+ age+"]; }}확인 결과
Javac을 사용하여 다음 클래스를 컴파일하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Javac Jacksontester.java
이제 Jacksontester를 실행하여 결과를 확인하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Java Jacksontester
출력 결과를 확인하십시오
{이름 = Mahesh, Age = 10} Mahesh Kumarfalse [1, 2, 3] 전체 데이터 바인딩
전체 데이터 바인딩은 Java 객체에 대한 JSON 매핑을 나타냅니다.
// 객체 mapper를 만듭니다 instanceObjectMapper mapper = new ObjectMapper (); // json 컨텐츠에 학생 개체 학생들에게 맵핑 학생 = mapper.readValue (새 파일 ( "wiching.json"), student.class); // 학생 객체를 json contentmapper.writeValue (새 파일 ( "Student.json"), 학생);
간단한 데이터 조작 바인딩을 살펴 보겠습니다. 여기서 우리는 Java 객체를 JSON에 직접 매핑하고 그 반대도 마감합니다.
Java 클래스 파일 C :/> Jackson_workSpace에서 Jacksontester라는 디렉토리를 만듭니다.
파일 : jacksontester.java
import java.io.file; import java.io.ioexception; import org.codehaus.jackson.jsongenerationException; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.map.jsonmappingexception; public class static {public classmapp.objectmapper; public classmapper; args []) {Jacksontester Tester = New Jacksontester (); try {student student = new Student (); 학생. 세트 (10); student.setName ( "Mahesh"); tester.writejson (학생); 학생 1 = Tester.Readjson (); System.out.println (Student1); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }} private void writejson (학생 학생)은 JSongenerationException, jsonMappingException, ioException {ObjectMapper Mapper = new ObjectMapper (); mapper.writeValue (새 파일 ( "Student.json"), 학생); } 사립 학생 readjson ()는 JsonParseException, jsonMappingException, ioException {ObjectMapper Mapper = new ObjectMapper (); Student Student = Mapper.readValue (새 파일 ( "Student.json"), Student.class); 반품 학생; }} 클래스 학생 {개인 문자열 이름; 사적인 int 연령; 공개 학생 () {} public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public int getage () {반환 연령; } public void 설정 (int Age) {this.age = age; } public string toString () {return "reption"학생 [이름 : "+ name+", age : "+ age+"]; }}확인 결과
Javac을 사용하여 다음 클래스를 컴파일하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Javac Jacksontester.java
이제 Jacksontester를 실행하여 결과를 확인하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Java Jacksontester
사본 코드가 다음과 같이 복사되어 있는지 확인하십시오.
학생 [이름 : Mahesh, 나이 : 10]