โปรแกรมแรกของแจ็คสัน
ก่อนที่จะป้อนรายละเอียดของการเรียนรู้ห้องสมุดแจ็คสันลองมาดูคุณสมบัติการใช้งานแอปพลิเคชัน ในตัวอย่างนี้เราสร้างชั้นเรียนนักเรียน สตริง JSON จะถูกสร้างขึ้นและ deserialial กับวัตถุของนักเรียนจากนั้นจึงเป็นลำดับต่อสตริง JSON
สร้างไฟล์คลาส Java ชื่อ JackSontester C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.ioException; นำเข้า org.codehaus.jackson.jsonparseException; นำเข้า org.codehaus.jackson.map.jsonmappingexception; นำเข้า org.codehaus.jackson.map.objectmapper; args []) {ObjectMapper mapper = new ObjectMapper (); สตริง jsonstring = "{/" ชื่อ/":/" mahesh/",/" อายุ/": 21}"; // แผนที่ JSON กับนักเรียนลอง {นักเรียนนักเรียน = mapper.readValue (jsonstring, student.class); 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 ส่วนตัว; นักเรียนสาธารณะ () {} สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; } Public String ToString () {return "นักเรียน [ชื่อ:"+ ชื่อ+ ", อายุ:"+ อายุ+ "]"; -ผลการตรวจสอบ
ใช้ Javac เพื่อรวบรวมคลาสต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
C:/jackson_workspace> javac jacksontester.java
ตอนนี้เรียกใช้ JackSontester เพื่อดูผลลัพธ์:
การคัดลอกรหัสมีดังนี้:
C:/Jackson_Workspace> Java JackSontester
ตรวจสอบผลลัพธ์
นักเรียน [ชื่อ: Mahesh, อายุ: 21] {"ชื่อ": "Mahesh", "อายุ": 21}ขั้นตอน - นี่คือขั้นตอนสำคัญในการพิจารณาที่นี่
ขั้นตอนที่ 1: สร้างวัตถุ ObjectMapper
สร้างวัตถุ ObjectMapper มันเป็นวัตถุที่ใช้ซ้ำได้ -
การคัดลอกรหัสมีดังนี้:
ObjectMapper mapper = new ObjectMapper ();
ขั้นตอนที่ 2: deserialize JSON ไปยังวัตถุ
ใช้วิธี readValue () เพื่อรับจากวัตถุ JSON สตริง/แหล่งที่มาของ JSON ถูกส่งผ่านเป็นพารามิเตอร์สตริง JSON และประเภทวัตถุ
// คัดค้านนักเรียน JSON ConversionStudent = Mapper.readValue (JSonstring, Student.class);
ขั้นตอนที่ 3: ทำให้วัตถุเป็นอนุกรมกับ JSON
ใช้เมธอด WRITEVALUEASSTRING () เพื่อรับการแสดงสตริง JSON ของวัตถุ
// Object to JSON Conversion JSonstring = mapper.writevalueasstring (นักเรียน);
Jackson Tree Model
แบบจำลองต้นไม้เตรียมการแสดงต้นไม้หน่วยความจำของไฟล์ JSON ObjectMapper สร้างแผนผังโหนด JSONNODE นี่เป็นวิธีที่ยืดหยุ่นที่สุด มันคล้ายกับ XML ของ Dom Parser
สร้างต้นไม้จาก JSON
ObjectMapper จัดเตรียมโหนดรูทต้นไม้ตัวชี้หลังจากอ่าน JSON โหนดรูทสามารถใช้ในการสำรวจต้นไม้ที่สมบูรณ์ พิจารณาตัวอย่างโค้ดต่อไปนี้เพื่อรับโหนดรูทที่ให้สตริง JSON
// สร้าง ObjectMapper InstanceObjectMapper Mapper = New ObjectMapper (); สตริง jsonstring = "{/" ชื่อ/":/" mahesh kumar/",/" อายุ/": 21,/" ตรวจสอบ/": false,/" เครื่องหมาย/": [100,90,85]}"; // สร้างต้นไม้จาก jsonjsonnode rootnode = mappper.readtree แบบจำลองต้นไม้ทราเวอร์แซล
ใช้เส้นทางสัมพัทธ์ไปยังโหนดรูทในทรีทราเวอร์แซลและประมวลผลข้อมูลเพื่อรับแต่ละโหนด พิจารณาการสำรวจข้อมูลโค้ดต่อไปนี้ของต้นไม้ของรูทโหนดที่ให้มา
jsonNode namenode = rootnode.path ("ชื่อ"); system.out.println ("ชื่อ:"+ namenode.getTextValue ()); jsonNode markNode = rootnode.path ("เครื่องหมาย"); Iterator Iterator = MarksNode.getElements ();ตัวอย่างสร้างไดเรกทอรีไฟล์ที่เรียกว่า JackSontester ใน Java Class C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.ioException; นำเข้า java.util.iterator; นำเข้า org.codehaus.jackson.jsonnode; นำเข้า org.codehaus.jackson.jsonparseexception; นำเข้า org.codehaus.jackson.map.jsonmappingexception; เป็นโมฆะหลัก (สตริง args []) {jackSontester tester = new JackSontester (); ลอง {ObjectMapper mapper = new ObjectMapper (); สตริง jsonstring = "{/" ชื่อ/":/" mahesh kumar/",/" อายุ/": 21,/" ตรวจสอบ/": false,/" เครื่องหมาย/": [100,90,85]}"; jsonNode rootNode = mappper.readtree (jsonstring); jsonNode namenode = rootnode.path ("ชื่อ"); System.out.println ("ชื่อ:"+ namenode.getTextValue ()); jsonNode agenode = rootnode.path ("อายุ"); System.out.println ("อายุ:" + agenode.getIntValue ()); jsonNode VerifiedNode = rootNode.Path ("ตรวจสอบ"); System.out.println ("ตรวจสอบแล้ว:" + (VerifiedNode.getBooleanValue ()? "ใช่": "ไม่")); jsonNode markNode = rootnode.path ("เครื่องหมาย"); ตัววนซ้ำ <JsonNode> iterator = markNode.getElements (); System.out.print ("เครื่องหมาย: ["); ในขณะที่ (iterator.hasnext ()) {jsonNode mark = 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]
การแปลง Tree to JSON
ในตัวอย่างนี้เราได้ใช้ JSONNODE และเขียนลงในไฟล์ JSON และอ่านกลับเพื่อสร้างต้นไม้
สร้างไดเรกทอรีที่เรียกว่า JackSontester ในไฟล์ Java Class C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.file; นำเข้า java.io.ioException; นำเข้า java.util.iterator; นำเข้า org.codehaus.jackson.jsonnode; นำเข้า org.codehaus.jackson.jsonparsexception; นำเข้า org.codehaus.jackson.map.jonmapping; org.codehaus.jackson.node.arraynode; นำเข้า org.codehaus.jackson.node.objectNode; JackSontester คลาสสาธารณะ {โมฆะคงที่สาธารณะ (String args []) {JackSontester Tester = new JackSonstester (); ลอง {ObjectMapper mapper = new ObjectMapper (); jsonNode rootNode = mapper.createObjectNode (); jsonNode markNode = mapper.createArrayNode (); ((ArrayNode) MarksNode) .Add (100); ((ArrayNode) MarksNode) .Add (90); ((ArrayNode) MarksNode) .Add (85); ((ObjectNode) RootNode) .put ("ชื่อ", "Mahesh Kumar"); ((ObjectNode) RootNode) .put ("อายุ", 21); ((ObjectNode) rootNode) .put ("ตรวจสอบ", false); ((ObjectNode) RootNode) .put ("เครื่องหมาย", marknode); mapper.writevalue (ไฟล์ใหม่ ("student.json"), rootnode); rootnode = mapper.readtree (ไฟล์ใหม่ ("student.json")); jsonNode namenode = rootnode.path ("ชื่อ"); System.out.println ("ชื่อ:"+ namenode.getTextValue ()); jsonNode agenode = rootnode.path ("อายุ"); System.out.println ("อายุ:" + agenode.getIntValue ()); jsonNode VerifiedNode = rootNode.Path ("ตรวจสอบ"); System.out.println ("ตรวจสอบแล้ว:" + (VerifiedNode.getBooleanValue ()? "ใช่": "ไม่")); jsonNode markNode1 = rootnode.path ("เครื่องหมาย"); ตัววนซ้ำ <JsonNode> iterator = markNode1.getElements (); System.out.print ("เครื่องหมาย: ["); ในขณะที่ (iterator.hasnext ()) {jsonNode mark = 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]
การแปลงจากต้นไม้เป็นวัตถุ Java
ในตัวอย่างนี้เราได้ใช้ JSONNode และเขียนลงในไฟล์ JSON และอ่านกลับแล้วแปลงวัตถุนักเรียนเพื่อสร้างต้นไม้
สร้างไดเรกทอรีที่เรียกว่า JackSontester ในไฟล์ Java Class C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.file; นำเข้า java.io.ioexception; นำเข้า java.util.arrays; นำเข้า org.codehaus.jackson.jsonnode; นำเข้า org.codehaus.jackson.jsonparsexception; org.codehaus.jackson.node.arraynode; นำเข้า org.codehaus.jackson.node.objectNode; JackSontester คลาสสาธารณะ {โมฆะคงที่สาธารณะ (String args []) {JackSontester Tester = new JackSonstester (); ลอง {ObjectMapper mapper = new ObjectMapper (); jsonNode rootNode = mapper.createObjectNode (); jsonNode markNode = mapper.createArrayNode (); ((ArrayNode) MarksNode) .Add (100); ((ArrayNode) MarksNode) .Add (90); ((ArrayNode) MarksNode) .Add (85); ((ObjectNode) RootNode) .put ("ชื่อ", "Mahesh Kumar"); ((ObjectNode) RootNode) .put ("อายุ", 21); ((ObjectNode) rootNode) .put ("ตรวจสอบ", false); ((ObjectNode) RootNode) .put ("เครื่องหมาย", marknode); mapper.writevalue (ไฟล์ใหม่ ("student.json"), rootnode); rootnode = mapper.readtree (ไฟล์ใหม่ ("student.json")); นักเรียนนักเรียน = mapper.treetovalue (rootnode, student.class); System.out.println ("ชื่อ:"+ student.getName ()); System.out.println ("อายุ:" + student.getage ()); System.out.println ("ตรวจสอบแล้ว:" + (student.isverified ()? "ใช่": "ไม่")); System.out.println ("เครื่องหมาย:"+array.toString (student.getMarks ())); } catch (jsonparseException e) {e.printstacktrace (); } catch (jsonMappingException e) {e.printStackTrace (); } catch (ioexception e) {e.printstacktrace (); }}} นักเรียนชั้นเรียน {ชื่อสตริง; อายุ int; บูลีนยืนยัน; int [] เครื่องหมาย; สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; } บูลีนสาธารณะ Isverified () {return ตรวจสอบ; } โมฆะสาธารณะ setVerified (ตรวจสอบบูลีน) {this.Verified = ตรวจสอบแล้ว; } public int [] getMarks () {เครื่องหมายคืน; } โมฆะสาธารณะ setMarks (int [] เครื่องหมาย) {this.marks = เครื่องหมาย; -ผลการตรวจสอบ
ใช้ Javac เพื่อรวบรวมคลาสต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
C:/jackson_workspace> javac jacksontester.java
ตอนนี้เรียกใช้ JackSontester เพื่อดูผลลัพธ์:
การคัดลอกรหัสมีดังนี้:
C:/Jackson_Workspace> Java JackSontester
ตรวจสอบผลลัพธ์
ชื่อ: Mahesh Kumarage: 21verified: Nomarks: [100 90 85]