잭슨 객체 직렬화
여기에서 JSON 파일에 직렬화 Java 객체를 소개 한 다음 JSON 파일을 읽고 객체로 변환됩니다. 이 예에서는 학생 수업이 만들어집니다. 학생 .json 파일에서 JSON에 표시 될 학생 객체를 만듭니다.
C :/> Jackson_workspace에서 Jacksontester라는 Java 클래스 파일을 만듭니다.
파일 : 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]
잭슨 데이터 바인딩 제네릭
간단한 데이터 바인딩에서 문자열을 키 객체로 사용하고 클래스를 값 객체로 매핑합니다. 대신, 우리는 특정 Java 객체와 유형을 사용하여 JSON에 캐스트 할 수 있습니다.
사용자 별 데이터를 저장하기 위해 클래스 userData를 사용하여 다음 예제를 고려하십시오.
Java 클래스 파일 C :/> Jackson_workSpace에서 Jacksontester라는 디렉토리를 만듭니다.
파일 이름 : Jacksontester.java
import java.io.file; import java.io.ioexception; import java.util.arrays; import java.util.hashmap; import java.util.list; import java.util.map; import org.codehaus.jackson.jsongenerationException; import org.codeHaus.jjackson.jsonparsecemence; org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.map.objectmapper; import org.codehaus.jackson.type.typereference; public static void main (String args []) {Jacksontester tester = new Jacksontester (); try {objectMapper mapper = new ObjectMapper (); MAP userDatamap = new Hashmap (); userData StudentData = new userData (); int [] marks = {1,2,3}; 학생 학생 = 신입생 (); 학생. 세트 (10); student.setName ( "Mahesh"); // Java Object StudentData.SetStudent (학생); // Java String StudentData.setName ( "Mahesh Kumar"); // Java Boolean StudentData.setVerified (boolean.false); // array StudentData.setMarks (marks); typeReference ref = new typeReference> () {}; userDatamap.put ( "StudentData1", StudentData); mapper.writeValue (새 파일 ( "Student.json"), userDatamap); // {// "StudentData1": // {// "학생": // {// "name": "mahesh", // "age": 10 //}, // "name": "mahesh kumar", // "venified": false, // "marks": [1,2,3] //} //} userdatamap = mapper.redvalue. 파일 ( "Student.json"), ref); System.out.println (userDatamap.get ( "StudentData1"). getStudent ()); System.out.println (userDatamap.get ( "StudentData1"). getName ()); System.out.println (userDatamap.get ( "StudentData1"). getVerified ()); System.out.println (Arrays.toString (userDatamap.get ( "StudentData1"). getMarks ()); } 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+"]; }} class userData {사립 학생 학생; 개인 문자열 이름; 개인 부울 확인; 개인 int [] 마크; public userData () {} 공개 학생 getStudent () {반품 학생; } public void setStudent (학생 학생) {this.student = 학생; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public boolean getVerified () {return verified; } public void setverified (부울 검증) {this.verified = verified; } public int [] getmarks () {return marks; } public void setmarks (int [] marks) {this.marks = marks; }}출력을 확인하십시오
Javac을 사용하여 다음 클래스를 컴파일하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Javac Jacksontester.java
이제 Jacksontester를 실행하여 결과를 확인하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Java Jacksontester
출력을 확인하십시오
학생 [이름 : Mahesh, 나이 : 10] Mahesh Kumarfalse [1, 2, 3]