Apabila menghuraikan rentetan JSON ke atau dari objek Java, secara lalai Gson cuba mencipta tika kelas Java dengan memanggil pembina lalai. Jika kelas Java tidak mengandungi pembina lalai atau kami ingin melakukan beberapa konfigurasi awal semasa mencipta objek Java, kami perlu mencipta dan mendaftarkan pencipta contoh kami sendiri.
Kami boleh mencipta pencipta instance tersuai dalam Gson menggunakan InstanceCreatorantara muka dan perlu melaksanakan kaedah createInstance(Type type).
T createInstance(Type type)
import java.lang.reflect.Type; import com.google.gson.*; public class CustomInstanceCreatorTest { public static void main(String args[]) { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(Course.class, new CourseCreator()); Gson gson = gsonBuilder.create(); String jsonString = "{'course1':'Core Java', 'course2':'Advanced Java'}"; Course course = gson.fromJson(jsonString, Course.class); System.out.println(course); } } // Course class class Course { private String course1; private String course2; private String technology; public Course(String technology) { this.technology = technology; } public void setCourse1(String course1) { this.course1 = course1; } public void setCourse2(String course2) { this.course2 = course2; } public String getCourse1() { return course1; } public String getCourse2() { return course1; } public void setTechnology(String technology) { this.technology = technology; } public String getTechnology() { return technology; } public String toString() { return "Course[ " + "course1 = " + course1 + ", course2 = " + course2 + ", technology = " + technology + " ]"; } } // CourseCreator class class CourseCreator implements InstanceCreator { @Override public Course createInstance(Type type) { Course course = new Course("Java"); return course; } }
Course[ course1 = Core Java, course2 = Advanced Java, technology = Java ]
Atas ialah kandungan terperinci Cara untuk membuat contoh tersuai menggunakan Gson di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!