API การเชื่อมโยงข้อมูลใช้สำหรับการแปลง JSON และเข้าถึงโดยใช้แอตทริบิวต์หรือใช้คำอธิบายประกอบ POJO (วัตถุ Java ปกติ) นี่คือสองประเภทของมัน
การเชื่อมข้อมูลอย่างง่าย - แปลง JSON จากแผนที่ Java, รายการ, สตริง, ตัวเลข, บูลีนและวัตถุว่าง
การเชื่อมข้อมูลแบบเต็ม - แปลง JSON เป็นประเภท Java ใด ๆ เราจะผูกมัดแยกกันในบทต่อไป
ObjectMapper อ่าน/เขียน JSON การผูกข้อมูลสองประเภท วิธีที่สะดวกที่สุดในการเชื่อมโยงข้อมูลคือการแยกวิเคราะห์ JAXB เหมือน XML
การเชื่อมข้อมูลอย่างง่าย
การเชื่อมโยงข้อมูลอย่างง่ายหมายถึงการแมป JSON กับประเภทข้อมูลหลักของ Java Core ตารางต่อไปนี้แสดงความสัมพันธ์ระหว่างประเภท JSON และประเภท Java
ลองมาดูการเชื่อมโยงการจัดการข้อมูลอย่างง่าย ที่นี่เราจะแมปประเภทดั้งเดิมของ Java โดยตรง JSON และในทางกลับกัน
สร้างไฟล์คลาส Java ชื่อ JackSontester ใน Directory C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.file; นำเข้า java.io.ioexception; นำเข้า java.util.hashmap; นำเข้า java.util.map; นำเข้า org.codehaus.jackson.jsongenerationexception; นำเข้า org.codehaus.jackson.jsonparseexception; org.codehaus.jackson.map.objectmapper; JackSontester คลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (String args []) {JackSontester Tester = New JackSontester (); ลอง {ObjectMapper mapper = new ObjectMapper (); แผนที่ <string, Object> studentDatamap = new hashmap <string, object> (); int [] เครื่องหมาย = {1,2,3}; นักเรียนนักเรียน = นักเรียนใหม่ (); นักเรียนการตั้งค่า (10); Student.setName ("Mahesh"); // Java Object studentDatamap.put ("นักเรียน", นักเรียน); // Java String StudentDatamap.put ("ชื่อ", "Mahesh Kumar"); // java boolean studentDatamap.put ("ตรวจสอบ", boolean.false); // array studentdatamap.put ("เครื่องหมาย", เครื่องหมาย); mapper.writevalue (ไฟล์ใหม่ ("student.json"), studentDatamap); // result.json // {// "นักเรียน": {"ชื่อ": "mahesh", "อายุ": 10}, // "เครื่องหมาย": [1,2,3], // "ตรวจสอบ": false, // "ชื่อ": "Mahesh Kumar" System.out.println (StudentDatamap.get ("นักเรียน")); System.out.println (StudentDatamap.get ("ชื่อ")); System.out.println (StudentDatamap.get ("ตรวจสอบแล้ว")); System.out.println (StudentDatamap.get ("เครื่องหมาย")); } 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
ตรวจสอบผลลัพธ์ผลลัพธ์
{name = mahesh, อายุ = 10} mahesh kumarfalse [1, 2, 3] การเชื่อมข้อมูลเต็มรูปแบบ
การเชื่อมโยงข้อมูลเต็มรูปแบบหมายถึงการแมป JSON กับวัตถุ Java ใด ๆ
// สร้าง ObjectMapper InstanceObjectMapper Mapper = New ObjectMapper (); // แผนที่เนื้อหา JSON กับนักเรียน ObjectStudent นักเรียน = Mapper.ReadValue (ไฟล์ใหม่ ("student.json"), student.class); // แผนที่นักเรียนวัตถุไปยัง JSON ContentMapper.writevalue (ไฟล์ใหม่ ("student.json"), นักเรียน);ลองมาดูการเชื่อมโยงการจัดการข้อมูลอย่างง่าย ที่นี่เราจะแมปวัตถุ Java โดยตรงไปยัง JSON และในทางกลับกัน
สร้างไดเรกทอรีที่เรียกว่า JackSontester ในไฟล์ Java Class C:/> Jackson_Workspace
ไฟล์: JackSontester.java
นำเข้า java.io.file; นำเข้า java.io.ioexception; นำเข้า org.codehaus.jackson.jsongenerationexception; นำเข้า org.codehaus.jackson.jsonparseexception; นำเข้า org.codehaus.jackson.map.jsonmappingexpess; โมฆะคงที่หลัก (String args []) {JackSontester Tester = new JackSontester (); ลอง {นักเรียนนักเรียน = นักเรียนใหม่ (); นักเรียนการตั้งค่า (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 (); }} โมฆะส่วนตัว writejson (นักเรียนนักเรียน) พ่น JSongenerationException, jsonMappingException, iOexception {ObjectMapper Mapper = New ObjectMapper (); mapper.writevalue (ไฟล์ใหม่ ("student.json"), นักเรียน); } นักเรียนส่วนตัว readjson () พ่น jsonparsexception, jsonmappingexception, ioexception {ObjectMapper mapper = new ObjectMapper (); นักเรียนนักเรียน = mapper.readValue (ไฟล์ใหม่ ("student.json"), student.class); กลับมานักเรียน; }} นักเรียนชั้นเรียน {ชื่อสตริงส่วนตัว; อายุ 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 อายุ: 10]