Maison > Java > javaDidacticiel > le corps du texte

Comment créer une instance personnalisée en utilisant Gson en Java ?

WBOY
Libérer: 2023-09-05 11:57:06
avant
859 Les gens l'ont consulté

Comment créer une instance personnalisée en utilisant Gson en Java ?

Lors de l'analyse d'une chaîne JSON vers ou depuis un objet Java, par défaut, Gson tente de créer une instance d'une classe Java en appelant le constructeur par défaut. Si la classe Java ne contient pas de constructeur par défaut ou si nous souhaitons effectuer une configuration initiale lors de la création d'un objet Java, nous devons créer et enregistrer notre propre créateur d'instance.

Nous pouvons créer un créateur d'instance personnalisé dans Gson en utilisant la InstanceCreatorinterface et devons implémenter la méthode createInstance(Type type).

Syntaxe

T createInstance(Type type)
Copier après la connexion

Exemple

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;
   }
}
Copier après la connexion

Sortie

Course[ course1 = Core Java, course2 = Advanced Java, technology = Java ]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal