API pengikat data digunakan untuk konversi JSON dan mengakses menggunakan atribut atau menggunakan anotasi POJO (objek Java normal). Berikut adalah dua jenisnya.
Ikatan Data Sederhana - Konversi JSON dari peta Java, daftar, string, angka, booleans dan objek nol.
Ikatan Data Lengkap - Konversi JSON ke jenis Java apa pun. Kami akan mengikat secara terpisah di bab berikutnya.
ObjectMapper membaca/menulis JSON dua jenis pengikatan data. Cara yang paling nyaman untuk mengikat data adalah dengan parser JAXB seperti XML.
Ikatan Data Sederhana
Ikatan data sederhana mengacu pada pemetaan JSON ke tipe data inti Java. Tabel berikut mencantumkan hubungan antara tipe JSON dan tipe Java.
Mari kita lihat ikatan manipulasi data sederhana. Di sini kita akan memetakan tipe primitif Java secara langsung JSON dan sebaliknya.
Buat file kelas Java bernama Jacksontester di Direktori C:/> Jackson_Workspace.
File: jacksontester.java
Impor java.io.file; impor java.io.ioException; impor java.util.hashmap; impor java.util.map; impor org.codehaus.jackson.jsongenerationException; impor org.codehaus.Jackson.jsonparseexception; impor org.codefaus.jackson.jsonparseexception; impor org.codefaus.jackson.jsonparseexception; impor org.codefaus.jackson.jsonparseexception; impor org.codefaus.jackson.jsonparseexception; impor org.codepode org.codehaus.jackson.map.objectMapper; kelas publik jacksontester {public static void main (string args []) {jacksontester tester = new jacksontester (); Coba {ObjectMapper mapper = new ObjectMapper (); Peta <String, Object> StudentDatamap = HashMap baru <String, Object> (); int [] marks = {1,2,3}; Siswa Siswa = Siswa Baru (); Student.Setage (10); Student.setname ("Mahesh"); // java objek studentdatamap.put ("siswa", siswa); // Java String StudentDatamap.put ("Name", "Mahesh Kumar"); // java boolean studentDatamap.put ("diverifikasi", boolean.false); // array studentdatamap.put ("tanda", tanda); mapper.writevalue (file baru ("student.json"), studentdatamap); // hasil student.json // {// "student": {"name": "Mahesh", "Age": 10}, // "Marks": [1,2,3], // "diverifikasi": false, // "name": "Mahesh Kumar" //} StudentDatamap = Mapper.Readvalue); System.out.println (StudentDatamap.get ("Student")); System.out.println (StudentDatamap.get ("Name")); System.out.println (StudentDatamap.get ("Diverifikasi")); System.out.println (StudentDatamap.get ("Marks")); } catch (jsonparseException e) {e.printstacktrace (); } catch (JsonMappingException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }}} class siswa {name string privat; usia int pribadi; Public Student () {} public String getName () {return name; } public void setName (name string) {this.name = name; } public int getage () {usia kembali; } public void setage (int usia) {this.age = usia; } public string toString () {return "siswa [nama:"+ name+ ", usia:"+ usia+ "]"; }}Hasil verifikasi
Gunakan Javac untuk mengkompilasi kelas berikut:
Salinan kode adalah sebagai berikut:
C:/jackson_workspace> javac jacksontester.java
Sekarang jalankan Jacksontester untuk melihat hasilnya:
Salinan kode adalah sebagai berikut:
C:/Jackson_Workspace> Java Jacksontester
Verifikasi hasil output
{name = Mahesh, usia = 10} Mahesh Kumarfalse [1, 2, 3] Ikatan Data Lengkap
Ikatan data lengkap mengacu pada pemetaan JSON ke objek Java apa pun.
// Buat ObjectMapper InstanceObjectMapper mapper = new ObjectMapper (); // Peta Konten JSON ke Siswa Objectstudent Student = mapper.readValue (file baru ("Student.json"), Student.class); // Peta Objek Siswa ke JSON ContentMapper.WritEvalue (File baru ("Student.json"), Student);Mari kita lihat ikatan manipulasi data sederhana. Di sini kita akan memetakan objek Java langsung ke JSON dan sebaliknya.
Buat direktori bernama Jacksontester di file kelas java c:/> jackson_workspace.
File: 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;import org.codehaus.jackson.map.ObjectMapper;public class JacksonTester { public static void main (string args []) {jacksontester tester = new jacksontester (); coba {siswa Siswa = Siswa Baru (); Student.Setage (10); Student.setname ("Mahesh"); tester.writejson (siswa); Siswa Student1 = tester.readjson (); System.out.println (Student1); } catch (jsonparseException e) {e.printstacktrace (); } catch (JsonMappingException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }} private void writeJson (siswa siswa) melempar JSongEnerationException, JsonMappingException, ioException {ObjectMapper mapper = new ObjectMapper (); mapper.writevalue (file baru ("student.json"), siswa); } private student readjson () melempar jsonparseException, jsonmappingException, ioException {objekmapper mapper = new ObjectMapper (); Siswa siswa = mapper.readValue (file baru ("student.json"), student.class); Siswa yang kembali; }} class siswa {nama string privat; usia int pribadi; Public Student () {} public String getName () {return name; } public void setName (name string) {this.name = name; } public int getage () {usia kembali; } public void setage (int usia) {this.age = usia; } public string toString () {return "siswa [nama:"+ name+ ", usia:"+ usia+ "]"; }}Hasil verifikasi
Gunakan Javac untuk mengkompilasi kelas berikut:
Salinan kode adalah sebagai berikut:
C:/jackson_workspace> javac jacksontester.java
Sekarang jalankan Jacksontester untuk melihat hasilnya:
Salinan kode adalah sebagai berikut:
C:/Jackson_Workspace> Java Jacksontester
Verifikasi bahwa kode salinan disalin sebagai berikut:
Siswa [Nama: Mahesh, Umur: 10]