잭슨의 첫 번째 프로그램
Jackson Library 학습의 세부 사항을 입력하기 전에 응용 프로그램 작업 기능을 살펴 보겠습니다. 이 예에서는 학생 수업을 만듭니다. JSON 문자열이 학생의 대상으로 만들어지고 사형화 된 다음 JSON 문자열로 직렬화됩니다.
Jacksontester c :/> Jackson_workspace라는 Java 클래스 파일을 만듭니다.
파일 : jacksontester.java
import java.io.ioexception; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.map.objectmapper; import org.codehaus.jackson.map.serializationconfig; problic antratster (sting void void void void void void void void void) ObjectMapper Mapper = 새로운 ObjectMapper (); 문자열 jsonstring = "{/"name/":/"mahesh/",/"age/": 21}"; // JSON에서 학생에게 학생을 시도합니다. System.out.println (학생); mapper.enable (serializationconfig.feature.indent_output); jsonstring = mapper.writevalueasstring (학생); System.out.println (jsonstring); } 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, 나이 : 21] { "이름": "Mahesh", "Age": 21}단계 - 여기에서 고려해야 할 중요한 단계는 다음과 같습니다.
1 단계 : ObjectMapper 객체를 만듭니다.
ObjectMapper 객체를 만듭니다. 재사용 가능한 대상입니다. /
코드 사본은 다음과 같습니다.
ObjectMapper Mapper = 새로운 ObjectMapper ();
2 단계 : JSON을 물체로 삼으십시오.
readValue () 메소드를 사용하여 JSON 객체에서 얻을 수 있습니다. JSON 문자열/소스는 매개 변수 JSON 문자열 및 객체 유형으로 전달됩니다.
// JSON ConversionStudent 학생의 개체 = Mapper.ReadValue (JSONSTRING, Student.Class);
3 단계 : 객체를 JSON에 직렬화합니다.
WriteValueAsString () 메소드를 사용하여 객체의 JSON 문자열 표현을 얻으십시오.
// JSON 변환 객체 jsonstring = mapper.writeValueAsstring (학생);
잭슨 트리 모델
트리 모델은 JSON 파일의 메모리 트리 표현을 준비합니다. ObjectMapper는 JSONNODE 노드 트리를 만듭니다. 이것은 가장 유연한 접근법입니다. Dom Parser의 XML과 유사합니다.
JSON에서 트리를 만듭니다
ObjectMapper는 JSON을 읽은 후 포인터 트리 루트 노드를 제공합니다. 루트 노드는 완전한 트리를 가로 지르는 데 사용될 수 있습니다. JSON 문자열을 제공하는 루트 노드를 얻으려면 다음 코드 스 니펫을 고려하십시오.
// 객체 mapper를 만듭니다 instanceObjectMapper mapper = new ObjectMapper (); String JSonstring = "{/"name/":/"Mahesh kumar/",/"age/": 21,/"verified/": false,/"marks/": [100,90,85]}"; // jsonjsonnode rootnode = mappper.readtree (jsonstring)에서 트리를 만듭니다. 트래버스 트리 모델
트래버스 트리의 루트 노드에 대한 상대 경로를 사용하고 각 노드를 얻기 위해 데이터를 처리하십시오. 제공된 루트 노드 트리의 다음 코드 스 니펫 트래버스를 고려하십시오.
jsonnode namenode = rootnode.path ( "name"); system.out.println ( "이름 :"+ namenode.getTextValue ()); jsonnode marksnode = rootnode.path ( "marks"); 반복자 iterator = marksnode.getElements ();
예제 Java Class C :/> Jackson_workspace에서 Jacksontester라는 파일 디렉토리를 만듭니다.
파일 : jacksontester.java
import java.io.ioexception; import java.util.iterator; import org.codehaus.jackson.jsonode; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.map.jsonmappingexception; public jacksontester {public void void void void {public void void void voidexception; import org.codehaus.jackson.map.jsonmappingexception; args []) {Jacksontester Tester = New Jacksontester (); try {objectMapper mapper = new ObjectMapper (); String JSonstring = "{/"name/":/"Mahesh Kumar/",/"age/": 21,/"verified/": false,/"marks/": [100,90,85]}"; jsonnode rootnode = mappper.readtree (jsonstring); jsonnode namenode = rootnode.path ( "name"); System.out.println ( "이름 :"+ namenode.getTextValue ()); jsonnode agenode = rootnode.path ( "Age"); System.out.println ( "Age :" + agenode.getIntValue ()); jsonnode verifiednode = rootnode.path ( "확인"); System.out.println ( "verified :" + (verifiednode.getBooleanValue ()? "예": "아니오"); jsonnode marksnode = rootnode.path ( "marks"); iterator <jsonnode> iterator = marksnode.getElements (); System.out.print ( "marks : ["); while (iterator.hasnext ()) {jsonnode marks = iterator.next (); System.out.print (Marks.getIntValue () + ""); } system.out.println ( "]"); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }}}출력 결과를 확인하십시오
Javac을 사용하여 다음 클래스를 컴파일하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Javac Jacksontester.java
이제 Jacksontester를 실행하여 결과를 확인하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Java Jacksontester
출력을 확인하십시오
이름 : Mahesh Kumarage : 21verified : Nomarks : [100 90 85]
JSON 변환으로 트리
이 예에서는 JSONNODE를 사용하여 JSON 파일로 작성하여 트리를 만들기 위해 다시 읽었습니다.
Java 클래스 파일 C :/> Jackson_workSpace에서 Jacksontester라는 디렉토리를 만듭니다.
파일 : jacksontester.java
import java.io.file; import java.io.ioexception; import java.util.iterator; import org.codehaus.jackson.jsonnode; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.jsonmappingexception; import org.codehaus.jackson.map.map org.codehaus.jackson.node.arraynode; import org.codehaus.jackson.node.objectnode; public class jacksontester {public static void main (String args []) {Jacksontester tester = new Jacksontester (); try {objectMapper mapper = new ObjectMapper (); jsonnode rootnode = mapper.createobjectnode (); jsonnode marksnode = mapper.createarRayNode (); ((ArrayNode) MarksNode) .add (100); ((Arraynode) Marksnode) .add (90); ((ArrayNode) MarksNode) .add (85); ((ObjectNode) rootnode) .put ( "이름", "Mahesh Kumar"); ((ObjectNode) rootnode) .put ( "Age", 21); ((ObjectNode) rootnode) .put ( "확인", False); ((ObjectNode) rootnode) .put ( "marks", marksnode); mapper.writeValue (새 파일 ( "Student.json"), rootnode); rootnode = mapper.readtree (새 파일 ( "Student.json")); jsonnode namenode = rootnode.path ( "name"); System.out.println ( "이름 :"+ namenode.getTextValue ()); jsonnode agenode = rootnode.path ( "Age"); System.out.println ( "Age :" + agenode.getIntValue ()); jsonnode verifiednode = rootnode.path ( "확인"); System.out.println ( "verified :" + (verifiednode.getBooleanValue ()? "예": "아니오"); jsonnode marksnode1 = rootnode.path ( "marks"); iterator <jsonnode> iterator = marksnode1.getElements (); System.out.print ( "marks : ["); while (iterator.hasnext ()) {jsonnode marks = iterator.next (); System.out.print (Marks.getIntValue () + ""); } system.out.println ( "]"); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }}}확인 결과
Javac을 사용하여 다음 클래스를 컴파일하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Javac Jacksontester.java
이제 Jacksontester를 실행하여 결과를 확인하십시오.
코드 사본은 다음과 같습니다.
C :/Jackson_workspace> Java Jacksontester
출력을 확인하십시오
이름 : Mahesh Kumar
나이 : 21
확인 : 아니요
마크 : [100 90 85]
나무에서 자바로 변환
이 예에서는 JSONNODE를 사용하여 JSON 파일로 작성한 다음 다시 읽은 다음 학생 객체를 변환하여 트리를 만듭니다.
Java 클래스 파일 C :/> Jackson_workSpace에서 Jacksontester라는 디렉토리를 만듭니다.
파일 : jacksontester.java
import java.io.file; import java.io.ioexception; import java.util.arrays; import org.codehaus.jackson.jsonnode; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.jsonmappingexception; import org.codehaus.jackson.map.map.map.map org.codehaus.jackson.node.arraynode; import org.codehaus.jackson.node.objectnode; public class jacksontester {public static void main (String args []) {Jacksontester tester = new Jacksontester (); try {objectMapper mapper = new ObjectMapper (); jsonnode rootnode = mapper.createobjectnode (); jsonnode marksnode = mapper.createarRayNode (); ((ArrayNode) MarksNode) .add (100); ((Arraynode) Marksnode) .add (90); ((ArrayNode) MarksNode) .add (85); ((ObjectNode) rootnode) .put ( "이름", "Mahesh Kumar"); ((ObjectNode) rootnode) .put ( "Age", 21); ((ObjectNode) rootnode) .put ( "확인", False); ((ObjectNode) rootnode) .put ( "marks", marksnode); mapper.writeValue (새 파일 ( "Student.json"), rootnode); rootnode = mapper.readtree (새 파일 ( "Student.json")); 학생 학생 = Mapper.treetovalue (Rootnode, Student.class); System.out.println ( "이름 :"+ withy.getName ()); System.out.println ( "age :" + whitity.getage ()); System.out.println ( "verified :" + (Student.isverified ()? "예": "아니오"); System.out.println ( "marks :"+arrays.toString (wiching.getMarks ())); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }}} 클래스 학생 {문자열 이름; int 연령; 부울 검증; int [] 마크; 공개 문자열 getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public int getage () {반환 연령; } public void 설정 (int Age) {this.age = age; } public boolean isverified () {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 Kumarage : 21verified : Nomarks : [100 90 85]