Heim > Java > javaLernprogramm > Wie ignoriere ich unbekannte Eigenschaften beim Parsen von JSON in Java?

Wie ignoriere ich unbekannte Eigenschaften beim Parsen von JSON in Java?

王林
Freigeben: 2023-09-07 18:45:02
nach vorne
924 Leute haben es durchsucht

Wie ignoriere ich unbekannte Eigenschaften beim Parsen von JSON in Java?

Bei der Verarbeitung von JSON-Daten in Java stoßen Entwickler möglicherweise auf unbekannte Eigenschaften oder Felder, die nicht in der entsprechenden Java-Klasse definiert sind. Diese nicht erkannten Elemente können beim Parsen Probleme verursachen und Ausnahmen oder Datenverlust verursachen. Um dieses Problem zu lösen, können Programmierer einen Mechanismus implementieren, um solche unbekannten Eigenschaften beim Parsen von JSON zu ignorieren.

Durch die ordnungsgemäße Konfiguration Ihres JSON-Parsers wird verhindert, dass unerwartete Eigenschaften die Funktionalität Ihrer Anwendung beeinträchtigen. JSON-Daten können robuster und flexibler analysiert werden, indem nicht erkannte Eigenschaften übersprungen und nur diejenigen analysiert werden, die mit der definierten Struktur übereinstimmen. Dadurch wird sichergestellt, dass wichtige Informationen nicht übersehen werden und unnötige oder ungültige Daten ignoriert werden.

JSON

Java verwendet JSON (JavaScript Object Notation) als leichtes und weit verbreitetes Datenaustauschformat zum Übertragen und Speichern strukturierter Daten. Sein einfaches und für Menschen lesbares Format ermöglicht die Darstellung von Objekten, Arrays, Zeichenfolgen, Zahlen, booleschen Werten und Nullwerten. JSON besteht aus Schlüssel-Wert-Paaren, die Schlüssel in Form von Zeichenfolgen verwenden, um die Verarbeitungslast zu verringern.

Umformulierung des JSON-Formats in Java wird normalerweise als Zeichenfolge dargestellt und mithilfe von Parsing- und Serialisierungsbibliotheken zwischen Java-Objekten konvertiert. Diese APIs ermöglichen das Parsen von JSON-Strings in Java-Objekte und umgekehrt und ermöglichen so die Integration zwischen JSON-basierten Systemen und Java-Anwendungen. Diese nahtlose Kommunikation ermöglicht einen einfachen Datenaustausch zwischen verschiedenen Systemen.

Methode

Es gibt verschiedene Möglichkeiten, unbekannte Eigenschaften beim Parsen von JSON in Java zu ignorieren. Hier sind einige häufig verwendete Methoden:

  • Jackson-Bibliothek mit ObjectMapper

  • Gson-Bibliothek mit GsonBuilder

  • JSON-B (Java API für JSON-Bindung)

  • Manuelle Analyse

Jackson-Bibliothek mit ObjectMapper

Diese Methode beinhaltet die Konfiguration des ObjectMapper (eine von der Jackson-Bibliothek bereitgestellte Klasse), indem die Funktion DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES auf false gesetzt wird. Dadurch kann der ObjectMapper unbekannte Eigenschaften beim Parsen von JSON ignorieren und so verhindern, dass Ausnahmen ausgelöst werden.

Algorithmus

  • Erstellen Sie eine Instanz von ObjectMapper.

  • Konfigurieren Sie den ObjectMapper, um die Funktion DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES auf false zu setzen.

  • Verwenden Sie ObjectMapper, um JSON-Daten in erforderliche Java-Objekte zu analysieren.

Beispiel

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonExample {
   public static void main(String[] args) throws Exception {
      String jsonString = "{"name": "John", "age": 25, "unknownProperty": "Value"}";

      ObjectMapper objectMapper = new ObjectMapper();
 
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

      Person person = objectMapper.readValue(jsonString, Person.class);
      System.out.println(person);
   }
}

class Person {
   private String name;
   private int age;

   // Getters and setters

   @Override
   public String toString() {
      return "Person{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
   }
}
Nach dem Login kopieren

Ausgabe

Person{name='John', age=25}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Gson-Bibliothek mit GsonBuilder

Um die Gson-Bibliothek in dieser Methode zu verwenden, müssen Sie eine Gson-Instanz mit der GsonBuilder-Klasse erstellen. Dies kann erreicht werden, indem die Methode setIgnoreUnknownProperties() mit dem Argument true aufgerufen wird. Dadurch wird Gson angewiesen, unbekannte Eigenschaften während der JSON-Analyse zu ignorieren, um sicherzustellen, dass sie nicht als Fehler behandelt werden.

Algorithmus

  • Erstellen Sie eine Instanz von GsonBuilder.

  • Rufen Sie die Methode setIgnoreUnknownProperties(true) auf der GsonBuilder-Instanz auf.

  • Verwenden Sie GsonBuilder, um Gson-Objekte zu erstellen.

  • Verwenden Sie Gson-Objekte, um JSON-Daten in erforderliche Java-Objekte zu analysieren.

Beispiel

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class GsonExample {
   public static void main(String[] args) {
      String jsonString = "{"name": "John", "age": 25, "unknownProperty": "Value"}";

      Gson gson = new GsonBuilder()
            .setIgnoreUnknownProperties(true)
            .create();

      Person person = gson.fromJson(jsonString, Person.class);
      System.out.println(person);
   }
}

class Person {
   private String name;
   private int age;

   // Getters and setters

   @Override
   public String toString() {
      return "Person{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
   }
}
Nach dem Login kopieren

Ausgabe

Person{name='John', age=25}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

JSON-B (Java API für JSON-Bindung)

Um unbekannte Eigenschaften mithilfe von JSON-B zu ignorieren, muss die Java-Klasse, die die JSON-Struktur darstellt, mit @JsonbTransient für die Felder oder Eigenschaften versehen werden, die ignoriert werden sollen. Diese Annotation weist die JSON-B-Bibliothek an, diese Eigenschaften während der JSON-Analyse zu überspringen.

Algorithmus

  • Verwenden Sie die Annotation @JsonbTransient für die Java-Klasse, die die JSON-Struktur für die Felder oder Eigenschaften darstellt, die Sie ignorieren möchten.

  • Verwenden Sie die JSON-B-Implementierung, um JSON-Daten in erforderliche Java-Objekte zu analysieren.

Beispiel

import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;

public class JsonBExample {
   public static void main(String[] args) {
      String jsonString = "{"name": "John", "age": 25, "unknownProperty": "Value"}";

      Jsonb jsonb = JsonbBuilder.create();

      Person person = jsonb.fromJson(jsonString, Person.class);
      System.out.println(person);
   }
}

class Person {
   private String name;
   private int age;

   // Getters and setters

   @Override
   public String toString() {
      return "Person{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
   }
}
Nach dem Login kopieren

Ausgabe

Person{name='John', age=25}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Manuelles Parsen

Um JSON-Daten mithilfe von Bibliotheken wie org.json oder json-simple zu analysieren, verfolgen Entwickler den Ansatz, die Schlüssel und Werte des JSON-Objekts manuell zu iterieren. Entwickler können ihr gewünschtes Parsing-Verhalten anpassen, indem sie identifizierte Eigenschaften selektiv verarbeiten und unbekannte Eigenschaften ignorieren.

Algorithmus

  • Verwenden Sie eine JSON-Bibliothek wie org.json oder json-simple, um JSON-Daten in JSON-Objekte zu analysieren.

  • Durchlaufen Sie die Schlüssel und Werte eines JSON-Objekts.

  • Verarbeiten Sie identifizierte Eigenschaften und ignorieren Sie alle nicht erkannten oder unbekannten Eigenschaften während der Iteration.

Beispiel

import org.json.JSONObject;

public class ManualParsingExample {
   public static void main(String[] args) {
      String jsonString = "{"name": "John", "age": 25, "unknownProperty": "Value"}";

      JSONObject jsonObject = new JSONObject(jsonString);

      String name = jsonObject.optString("name");
      int age = jsonObject.optInt("age");

      Person person = new Person();
      person.setName(name);
      person.setAge(age);

      System.out.println(person);
   }
}

class Person {
   private String name;
   private int age;

   // Getters and setters

   @Override
   public String toString() {
      return "Person{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
   }
}
Nach dem Login kopieren

Ausgabe

Person{name='John', age=25}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fazit

In diesem Tutorial ist es beim Parsen von JSON in Java wichtig, unbekannte Eigenschaften angemessen zu behandeln, um Robustheit und Flexibilität bei der Datenverarbeitung sicherzustellen. Durch die Konfiguration eines ObjectMapper mit Jackson, die Verwendung von Gson und GsonBuilder, die Nutzung von JSON-B-Annotationen oder das manuelle Parsen von JSON-Daten können Entwickler unbekannte Eigenschaften effektiv ignorieren und potenzielle Probleme beim Parsen von JSON in Java entschärfen.

Das obige ist der detaillierte Inhalt vonWie ignoriere ich unbekannte Eigenschaften beim Parsen von JSON in Java?. 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