Heim > Java > javaLernprogramm > Möglichkeit, eine benutzerdefinierte Instanz mit Gson in Java zu erstellen?

Möglichkeit, eine benutzerdefinierte Instanz mit Gson in Java zu erstellen?

WBOY
Freigeben: 2023-09-05 11:57:06
nach vorne
912 Leute haben es durchsucht

Möglichkeit, eine benutzerdefinierte Instanz mit Gson in Java zu erstellen?

Beim Parsen einer JSON-Zeichenfolge zu oder von einem Java-Objekt versucht Gson standardmäßig, eine Instanz einer Java-Klasse zu erstellen, indem es den Standardkonstruktor aufruft. Wenn die Java-Klasse keinen Standardkonstruktor enthält oder wir beim Erstellen eines Java-Objekts eine Erstkonfiguration vornehmen möchten, müssen wir unseren eigenen Instanzersteller erstellen und registrieren.

Wir können in Gson einen benutzerdefinierten Instanzersteller mithilfe der Schnittstelle „InstanceCreator“ erstellen und müssen die Methode „createInstance“ (Typtyp) implementieren. Syntax

T createInstance(Type type)
Nach dem Login kopieren
Beispiel
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;
   }
}
Nach dem Login kopieren
Ausgabe
Course[ course1 = Core Java, course2 = Advanced Java, technology = Java ]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMöglichkeit, eine benutzerdefinierte Instanz mit Gson in Java zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage