คลาส ObjectMapper เป็นคลาสหลักของไลบรารีแจ็คสัน มันมีฟังก์ชั่นบางอย่างที่จะถูกแปลงเป็นวัตถุ Java เพื่อให้ตรงกับโครงสร้าง JSON และในทางกลับกัน มันใช้อินสแตนซ์ของ JSONPARSER และ JSONGENERATOR เพื่อใช้การอ่าน/เขียนจริงของ JSON
การประกาศในชั้นเรียน
ต่อไปนี้คือการประกาศของ org.codehaus.jackson.map.objectmapper คลาส:
Public Class ObjectMapper ขยาย ObjectCodec ใช้เวอร์ชัน
ชั้นเรียนซ้อนกัน
| SN | ชั้นเรียนและคำอธิบาย |
|---|---|
| 1 | คลาสคงที่ ObjectMapper.DefaultTyperesolverBuilder // ปรับแต่ง TyperesolverBuilder ให้ "อินพุตเริ่มต้น" โดยใช้ตัวสร้างความละเอียดประเภท (ดู enabledefaultTyping () สำหรับรายละเอียด) |
| 2 | ObjectMapper.defaultTyping // ใช้ enabledefaultTyping () การแจงนับเพื่อระบุประเภท (คลาส) อินพุตเริ่มต้นควรใช้ |
| SN | ตัวสร้างและคำอธิบาย |
|---|---|
| 1 | ObjectMapper () // ตัวสร้างเริ่มต้นซึ่งจะสร้าง jsonfactory เริ่มต้นหากจำเป็นต้องใช้ stdserializerprovider เป็น serializerprovider และ beanserializerfactory เป็น serializerfactory |
| 2 | ObjectMapper (jsonfactory jf) // สร้างแผนที่ jsonparsers ที่จำเป็นและ/หรือ jsongenerators โดยใช้ JSONFactory ที่ระบุ |
| 3 | ObjectMapper (JsonFactory JF, SerializerProvider SP, DeserializerProvider DP) |
| 4 | ObjectMapper (JsonFactory JF, SerializerProvider SP, DeserializerProvider DP, SerializationConfig Sconfig, DeserializationConfig DCONFIG) |
| 5 | ไม่แนะนำให้ใช้ ObjectMapper (SerializerFactory SF) ใช้โครงสร้างอื่น ๆ แทน; โปรดทราบว่าคุณสามารถตั้งค่า Serialization Factory SetSerializerFactory (org.codehaus.jackson.map.serializerfactory) |
รหัสพื้นฐานของคลาสทดสอบตัวอย่างมีดังนี้
/ * * @project java * @package * @file jackson.java * @version 1.0 * /คลาสสาธารณะ Jackson { / * * * คลาส Descripton ไปที่นี่ * * @class Jackson * @version 1.0 */ สาธารณะ jsongenerator jsongenerator = null; Mapper ObjectMapper ส่วนตัว = ObjectMapper ใหม่ (); โมฆะคงที่สาธารณะหลัก (String [] args) {นักเรียนนักเรียน = นักเรียนใหม่ (); Student.setisstudent (จริง); student.setuid (1,000); Student.setuname ("Xiao Liao"); Student.setUpwd ("123"); Student.setNumber (12); แผนที่ <สตริงนักเรียน> stumap = ใหม่ hashmap <string, นักเรียน> (); Stumap.put ("1", นักเรียน); Stumap.put ("2", นักเรียน); รายการ <Object> stulist = new ArrayList <Object> (); รายการ <student> stulist1 = arraylist ใหม่ <student> (); Stulist1.add (นักเรียน); นักเรียน = นักเรียนใหม่ (); Student.setisstudent (เท็จ); Student.setuid (200); Student.setuname ("Xiao Mi"); Stulist1.add (นักเรียน); stulist.add (นักเรียน); stulist.add (stucent xin "); stulist.add (" Xiao er "); stulist.add (Stumap); // readjson2list (); ลอง {// readjson2array (); // writearray2json (Array); // writemap2json (Stumap); WriteEntity2JSON (วัตถุวัตถุ) พ่น IOException {mapper.writevalue (ไฟล์ใหม่ ("d: //developsoft//aaadowload//testjson1//lib//aa.txt"), วัตถุ); แปลงเป็นอาร์เรย์ JSON) * @param Object * @throws ioexception */โมฆะสาธารณะคงที่ writearray2json (วัตถุวัตถุ) พ่น IoException {// writevalue มีฟังก์ชั่นเดียวกับ riteroBject mappper.writevalue (ไฟล์ใหม่ ("d: //developsoft mappper.writevalue (System.out, Object);}/** * * <code> writemap2json </code> * @description: todo (วัตถุแผนที่ถูกแปลงเป็นวัตถุ JSON) * @param Object * @throws System.out.println ("ใช้ ObjectMapper ----------------"); ไฟล์ ("D: //developsoft//aaadowload//testjson1//lib//aamap.txt"), วัตถุ); WriteList2JSON (วัตถุวัตถุ) พ่น IOException {System.out.println ("==>"+mapper.writevalueasstring (Object)); );}/** * * <code> writejson2Entity </code> * @description: todo (json แปลงเป็นเอนทิตี) * @throws ioexception */โมฆะสาธารณะคง ไฟล์ ("D: //developsoft//aaadowload//testjson1//lib//aa.txt"); เอาท์พุท // mapper.defaulttyprintingWriter (). writevalueasstring (ค่า); mapper.readvalue (json, student.class); system.out.println ("json2:"+student1.toString ()); System.out.println ("สตริง JSON ไปยังเอนทิตี -------------------"); System.out.println (student.toString ()); String json = "[{/" uid/": 1000,/" uname/":/" Xiao Liao/",/" upwd/":/" 123/",/" หมายเลข/": 12.0,/" mi/",/" upwd/": null,/" หมายเลข/": 0.0,/" isstudent/": false}]"; = link.keyset (); }/*** json ถูกแปลงเป็นรายการวัตถุ*/โมฆะคงที่สาธารณะ readjson2list () {string json = "[{/" uid/": 1,/" uname/":/" www/",/" number/": 234,/" upwd/":/" 456/"}," "/"uid/":5,/"Uname/":/"tom/",/"number/":3.44,/"upwd/":/"123/"} " <list.size (); (jsonparseexception e) {e.printstacktrace ()} catch (jsonmappingexception e) {e.printstacktrace (); "[{/" uid/": 1,/" uname/":/" www/",/" number/": 234,/" upwd/":/" 456/" นักเรียน [] = mapper.readvalue (JSON, นักเรียน []. ชั้นเรียน); E.PrintStackTrace ();}}}ผลการพิมพ์:
串转换成เอนทิตี ------------- JSON2: uid = 1000, ชื่อ = Xiao Liao, UPWD = 123, number = 12.0, iSstudent = TruewriteMap2json ----------- {"2": {"uid": 1000, "Uname": "Xiao" Liao "," Upwd ":" 123 "," Number ": 12.0," Isstudent ": True}," 1 ": {" UID ": 1000," Uname ":" Xiao Liao "," Upwd ":" 123 "," Number ": 12.0," Isstudent ": true}} readjson2array ------------------------> uid = 1, name = ww w, upwd = 456, number = 234.0, iSstudent = false> uid = 5, name = tom, upwd = 123, number = 3.44, isstudent = falsewritemap2json ------------- {"2": {"UID": 1000, "Uname": "Xiao Liao", "Upwd": "123", "Number": 12.0, "Isstudent": True}, "1": {"UID": 1000, "Uname": "Xiao Liao "," Upwd ":" 123 "," Number ": 12.0," Isstudent ": true}}ทุกคนลองด้วยตัวเองข้างต้นเป็นรหัสทดสอบของฉัน