Jackson - Kurzanleitung

Jackson ist eine einfache Java-basierte Bibliothek zum Serialisieren von Java-Objekten in JSON und umgekehrt.

Eigenschaften

  • Easy to use. - Die Jackson API bietet eine Fassade auf hoher Ebene, um häufig verwendete Anwendungsfälle zu vereinfachen.

  • No need to create mapping. - Die Jackson API bietet eine Standardzuordnung für die meisten zu serialisierenden Objekte.

  • Performance. - jackson ist sehr schnell, hat einen geringen Speicherbedarf und eignet sich für große Objektgraphen oder -systeme.

  • Clean JSON. - jackson erstellt saubere und kompakte JSON-Ergebnisse, die leicht zu lesen sind.

  • No Dependency. - Für die Jackson-Bibliothek ist außer jdk keine andere Bibliothek erforderlich.

  • Open Source - Jackson Library ist Open Source und kann kostenlos verwendet werden.

Drei Arten der Verarbeitung von JSON

Jackson bietet drei alternative Möglichkeiten zur Verarbeitung von JSON

  • Streaming API- liest und schreibt JSON-Inhalte als diskrete Ereignisse. JsonParser liest die Daten, während JsonGenerator die Daten schreibt. Es ist der leistungsstärkste Ansatz unter den dreien und weist den geringsten Overhead und den schnellsten Lese- / Schreibvorgang auf. Es ist Analogus to Stax Parser für XML.

  • Tree Model- bereitet eine speicherinterne Baumdarstellung des JSON-Dokuments vor. ObjectMapper-Buildbaum von JsonNode-Knoten. Es ist der flexibelste Ansatz. Es ist analog zum DOM-Parser für XML.

  • Data Binding - Konvertiert JSON mithilfe von Property Accessor oder mithilfe von Anmerkungen in und von POJO (Plain Old Java Object). Es ist von zwei Arten.

    • Simple Data Binding - Konvertiert JSON in und von Java Maps, Listen, Strings, Numbers, Booleans und Null-Objekten.

    • Full Data Binding - Konvertiert JSON in und von einem beliebigen JAVA-Typ.

    ObjectMapper liest / schreibt JSON für beide Arten von Datenbindungen. Die Datenbindung ist am bequemsten und entspricht dem JAXB-Parer für XML.

Probieren Sie es Option Online

Sie müssen wirklich keine eigene Umgebung einrichten, um Guava, eine JAVA-basierte Bibliothek, zu lernen. Der Grund ist sehr einfach: Wir haben die Java-Programmierumgebung bereits online eingerichtet, sodass Sie alle verfügbaren Beispiele gleichzeitig online kompilieren und ausführen können, wenn Sie Ihre theoretische Arbeit erledigen. Dies gibt Ihnen Vertrauen in das, was Sie lesen, und um das Ergebnis mit verschiedenen Optionen zu überprüfen. Sie können jedes Beispiel ändern und online ausführen.

Versuchen Sie das folgende Beispiel mit Try it Option in der oberen rechten Ecke des folgenden Beispielcodefelds verfügbar:

public class MyFirstJavaProgram {

    public static void main(String []args) {
       System.out.println("Hello World");
    }
}

Für die meisten Beispiele in diesem Tutorial finden Sie Try it Option, nutzen Sie es einfach und genießen Sie Ihr Lernen.

Einrichtung der lokalen Umgebung

Wenn Sie weiterhin bereit sind, Ihre Umgebung für die Programmiersprache Java einzurichten, finden Sie in diesem Abschnitt Anleitungen zum Herunterladen und Einrichten von Java auf Ihrem Computer. Führen Sie die folgenden Schritte aus, um die Umgebung einzurichten.

Java SE ist frei verfügbar über den Link Java herunterladen . Sie laden also eine Version herunter, die auf Ihrem Betriebssystem basiert.

Befolgen Sie die Anweisungen, um Java herunterzuladen und auszuführen .exeum Java auf Ihrem Computer zu installieren. Sobald Sie Java auf Ihrem Computer installiert haben, müssen Sie Umgebungsvariablen so einstellen, dass sie auf die richtigen Installationsverzeichnisse verweisen:

Einrichten des Pfads für Windows 2000 / XP:

Angenommen, Sie haben Java im Verzeichnis c: \ Programme \ java \ jdk installiert :

  • Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz" und wählen Sie "Eigenschaften".

  • Klicken Sie auf der Registerkarte "Erweitert" auf die Schaltfläche "Umgebungsvariablen".

  • Ändern Sie nun die Variable 'Path' so, dass sie auch den Pfad zur ausführbaren Java-Datei enthält. Wenn der Pfad derzeit auf "C: \ WINDOWS \ SYSTEM32" festgelegt ist, ändern Sie Ihren Pfad in "C: \ WINDOWS \ SYSTEM32; c: \ Programme \ java \ jdk \ bin".

Einrichten des Pfads für Windows 95/98 / ME:

Angenommen, Sie haben Java im Verzeichnis c: \ Programme \ java \ jdk installiert :

  • Bearbeiten Sie die Datei 'C: \ autoexec.bat' und fügen Sie am Ende die folgende Zeile hinzu:
    'SET PATH =% PATH%; C: \ Programme \ java \ jdk \ bin'

Einrichten des Pfads für Linux, UNIX, Solaris, FreeBSD:

Die Umgebungsvariable PATH sollte so eingestellt sein, dass sie darauf verweist, wo die Java-Binärdateien installiert wurden. Informationen hierzu finden Sie in Ihrer Shell-Dokumentation.

Wenn Sie beispielsweise bash als Shell verwenden, fügen Sie die folgende Zeile am Ende Ihrer '.bashrc: export PATH = / path / to / java: $ PATH' hinzu.

Beliebte Java-Editoren:

Zum Schreiben Ihrer Java-Programme benötigen Sie einen Texteditor. Es gibt noch ausgefeiltere IDEs auf dem Markt. Im Moment können Sie jedoch Folgendes in Betracht ziehen:

  • Notepad: Auf Windows-Computern können Sie einen einfachen Texteditor wie Notepad (für dieses Lernprogramm empfohlen) und TextPad verwenden.

  • Netbeans:ist eine Open-Source-Java-IDE, die kostenlos heruntergeladen werden kann http://www.netbeans.org/index.html.

  • Eclipse: ist auch eine Java-IDE, die von der Open-Source-Community von eclipse entwickelt wurde und von heruntergeladen werden kann http://www.eclipse.org/.

Laden Sie das Jackson-Archiv herunter

Laden Sie die neueste Version der Jackson-JAR-Datei aus dem Maven Repository - Jackson herunter . In diesem Tutorial werden jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar und jackson-database-2.8.9.jar heruntergeladen und in den Ordner C: \> jackson kopiert.

Betriebssystem Archivname
Windows jackson-xxx-2.8.9.jar
Linux jackson-xxx-2.8.9.jar
Mac jackson-xxx-2.8.9.jar

Stellen Sie die Jackson-Umgebung ein

Stellen Sie die jackson_HOMEUmgebungsvariable, die auf den Speicherort des Basisverzeichnisses verweist, in dem Guava jar auf Ihrem Computer gespeichert ist. Angenommen, wir haben Jackson-Core-2.8.9.jar, Jackson-Annotations-2.8.9.jar und Jackson-Databind-2.8.9.jar im Jackson-Ordner auf verschiedenen Betriebssystemen wie folgt extrahiert.

Betriebssystem Ausgabe
Windows Setzen Sie die Umgebungsvariable jackson_HOME auf C: \ jackson
Linux export jackson_HOME = / usr / local / jackson
Mac export jackson_HOME = / Library / jackson

Setzen Sie die Variable CLASSPATH

Stellen Sie die CLASSPATHUmgebungsvariable, die auf die Position des Jackson-Glases verweist. Angenommen, wir haben jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar und jackson-database-2.8.9.jar wie folgt im Jackson-Ordner auf verschiedenen Betriebssystemen gespeichert.

Betriebssystem Ausgabe
Windows Setzen Sie die Umgebungsvariable CLASSPATH auf% CLASSPATH%;% jackson_HOME% \ jackson-core-2.8.9.jar;% jackson_HOME% \ jackson-database-2.8.9.jar;% jackson_HOME% \ jackson-annotations-2.8.9. Krug;.;
Linux export CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-database-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar:.
Mac export CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-database-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar:.

Bevor wir uns mit den Details der Jackson-Bibliothek befassen, sehen wir uns eine Anwendung in Aktion an. In diesem Beispiel haben wir eine Schülerklasse erstellt. Wir erstellen eine JSON-Zeichenfolge mit Schülerdetails und deserialisieren sie in das Schülerobjekt und serialisieren sie dann in eine JSON-Zeichenfolge.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Schritte zum Erinnern

Im Folgenden sind die wichtigen Schritte aufgeführt, die hier zu berücksichtigen sind.

Schritt 1: Erstellen Sie ein ObjectMapper-Objekt.

Erstellen Sie ein ObjectMapper-Objekt. Es ist ein wiederverwendbares Objekt.

ObjectMapper mapper = new ObjectMapper();

Schritt 2: JSON in Objekt deSerialisieren.

Verwenden Sie die Methode readValue (), um das Objekt aus dem JSON abzurufen. Übergeben Sie die json-Zeichenfolge / Quelle der json-Zeichenfolge und den Objekttyp als Parameter.

//Object to JSON Conversion
Student student = mapper.readValue(jsonString, Student.class);

Schritt 3: Serialisieren Sie das Objekt in JSON.

Verwenden Sie die Methode writeValueAsString (), um die JSON-Zeichenfolgendarstellung eines Objekts abzurufen.

//Object to JSON Conversion		
jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);

ObjectMapper ist die Hauptdarstellerklasse der Jackson-Bibliothek. Die ObjectMapper-Klasse ObjectMapper bietet Funktionen zum Lesen und Schreiben von JSON, entweder zu und von grundlegenden POJOs (Plain Old Java Objects) oder zu und von einem Allzweck-JSON-Baummodell (JsonNode), sowie zugehörige Funktionen zum Durchführen von Konvertierungen. Es ist auch sehr anpassbar, um sowohl mit verschiedenen Arten von JSON-Inhalten zu arbeiten als auch fortgeschrittenere Objektkonzepte wie Polymorphismus und Objektidentität zu unterstützen. ObjectMapper fungiert auch als Factory für erweiterte ObjectReader- und ObjectWriter-Klassen.

Klassenerklärung

Es folgt die Erklärung für com.fasterxml.jackson.databind.ObjectMapper Klasse -

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

Verschachtelte Klassen

S.No. Klasse & Beschreibung
1 static class ObjectMapper.DefaultTypeResolverBuilder

Angepasster TypeResolverBuilder, der Builder für Typauflöser bereitstellt, die mit der sogenannten "Standardtypisierung" verwendet werden (Einzelheiten finden Sie unter enableDefaultTyping ()).

2 static class ObjectMapper.DefaultTyping

Aufzählung, die mit enableDefaultTyping () verwendet wird, um anzugeben, für welche Art von Typen (Klassen) die Standardtypisierung verwendet werden soll.

Felder

  • protected DeserializationConfig _deserializationConfig - Konfigurationsobjekt, das grundlegende globale Einstellungen für den Serialisierungsprozess definiert.

  • protected DefaultDeserializationContext _deserializationContext- Blueprint-Kontextobjekt; Hier gespeichert, um benutzerdefinierte Unterklassen zuzulassen.

  • protected InjectableValues _injectableValues - Anbieter für Werte, die in deserialisierte POJOs injiziert werden sollen.

  • protected JsonFactory _jsonFactory - Factory wird verwendet, um nach Bedarf JsonParser- und JsonGenerator-Instanzen zu erstellen.

  • protected SimpleMixInResolver _mixIns - Zuordnung, die definiert, wie Mix-In-Annotationen angewendet werden: Schlüssel ist der Typ, der zusätzliche Annotationen erhalten soll, und Wert ist der Typ, der Annotationen zum "Einmischen" enthält.

  • protected ConfigOverrides _propertyOverrides - Derzeit aktive Konfigurationsüberschreibungen pro Typ, auf die über den deklarierten Eigenschaftstyp zugegriffen wird.

  • protected Set<Object> _registeredModuleTypes - Eine Reihe von Modultypen (gemäß Module.getTypeId (), die registriert wurden; nachverfolgen, ob MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS aktiviert ist, sodass doppelte Registrierungsaufrufe ignoriert werden können (um zu vermeiden, dass dieselben Handler meistens mehrmals hinzugefügt werden).

  • protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - Wir werden eine separate Karte auf der Hauptebene verwenden, um die Deserialisierer auf Stammebene zu verfolgen.

  • protected SerializationConfig _serializationConfig - Konfigurationsobjekt, das grundlegende globale Einstellungen für den Serialisierungsprozess definiert.

  • protected SerializerFactory _serializerFactory - Serializer-Fabrik zum Erstellen von Serializern.

  • protected DefaultSerializerProvider _serializerProvider - Objekt, das den Zugriff auf Serialisierer verwaltet, die für die Serialisierung verwendet werden, einschließlich Caching.

  • protected SubtypeResolver _subtypeResolver - Sache, die zum Registrieren von Untertypen verwendet wird und bei Bedarf in Super- / Untertypen aufgelöst wird.

  • protected TypeFactory _typeFactory- Spezifische Factory zum Erstellen von JavaType-Instanzen; erforderlich, damit Module mehr benutzerdefinierte Typverarbeitung hinzufügen können (hauptsächlich zur Unterstützung von Typen von Nicht-Java-JVM-Sprachen).

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • protected static BaseSettings DEFAULT_BASE - Die Basiseinstellungen enthalten Standardeinstellungen, die für alle ObjectMapper-Instanzen verwendet werden.

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

Konstruktoren

S.No. Konstruktor & Beschreibung
1 ObjectMapper()

Der Standardkonstruktor, der bei Bedarf die Standard-JsonFactory erstellt, verwendet SerializerProvider als SerializerProvider und BeanSerializerFactory als SerializerFactory.

2 ObjectMapper(JsonFactory jf)

Erstellt eine Instanz, die die angegebene JsonFactory zum Erstellen der erforderlichen JsonParser und / oder JsonGeneratoren verwendet.

3 ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)

Erstellt eine Instanz, die die angegebene JsonFactory zum Erstellen der erforderlichen JsonParser und / oder JsonGeneratoren verwendet, und verwendet bestimmte Anbieter für den Zugriff auf Serializer und Deserializer.

4 protected ObjectMapper(ObjectMapper src)

Kopierkonstruktor, der hauptsächlich zur Unterstützung von copy () verwendet wird.

Methoden

Überschreibbare Hilfsmethode zum Erstellen von SerializerProvider zur Serialisierung. void addMixInAnnotations (Ziel der Klasse <?>, Klasse <?> mixinSource) - Veraltet. Seit 2.5: ersetzt durch eine fließende Form der Methode; addMixIn (Klasse, Klasse). protected DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - Interne Hilfsmethode, die aufgerufen wird, um eine Instanz von DeserializationContext zum Deserialisieren eines einzelnen Stammwerts zu erstellen. JsonSchema generateJsonSchema (Klasse <?> T) - Veraltet. Verwenden Sie seit 2.6 einen externen JSON-Schema-Generator (https://github.com/FasterXML/jackson-module-jsonSchema) (der unter der Haube acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper) aufruft) void registerSubtypes (Class <?> ... classes) - Methode zum Registrieren der angegebenen Klasse als Subtyp, sodass die typnamenbasierte Auflösung Supertypen mit Subtypen verknüpfen kann (als Alternative zur Verwendung von Anmerkungen). void setFilters (FilterProvider filterProvider) - Veraltet. Verwenden Sie seit 2.6 stattdessen setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) (ermöglicht Verkettung). Factory-Methode zum Erstellen von ObjectReader, bei der angegebene Zeichen-Escape-Details für die Ausgabe verwendet werden.
1 protected void _checkInvalidCopy(Class<?> exp)

2 protected void _configAndWriteValue(JsonGenerator g, Object value) - Methode, die aufgerufen wird, um den Generator nach Bedarf zu konfigurieren und dann die Schreibfunktion aufzurufen
3 protected Object _convert(Object fromValue, JavaType toValueType) - Tatsächliche Konvertierungsimplementierung: Anstatt vorhandene Lese- und Schreibmethoden zu verwenden, wird ein Großteil des Codes eingefügt.
4 protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - Methode zum Auffinden des Deserialisierers für den übergebenen Wert auf Stammebene.
5 protected JsonToken _initForReading(JsonParser p) - Methode, die aufgerufen wird, um sicherzustellen, dass der angegebene Parser zum Lesen von Inhalten für die Datenbindung bereit ist.
6 protected ObjectReader _newReader(DeserializationConfig config) - Unterklassen der Factory-Methode müssen überschrieben werden, um ObjectReader-Instanzen des richtigen Untertyps zu erzeugen
7 protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - Unterklassen der Factory-Methode müssen überschrieben werden, um ObjectReader-Instanzen des richtigen Untertyps zu erzeugen
8 protected ObjectWriter _newWriter(SerializationConfig config) - Unterklassen der Factory-Methode müssen überschrieben werden, um ObjectWriter-Instanzen des richtigen Untertyps zu erzeugen
9 protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - Unterklassen der Factory-Methode müssen überschrieben werden, um ObjectWriter-Instanzen des richtigen Untertyps zu erzeugen
10 protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - Unterklassen der Factory-Methode müssen überschrieben werden, um ObjectWriter-Instanzen des richtigen Untertyps zu erzeugen.
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - Tatsächliche Implementierung von Wertlesung + Bindungsoperation.
13 protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
14 protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser)
15 protected void _verifySchemaType(FormatSchema schema)
16 void acceptJsonFormatVisitor(Class<?> type, JsonFormatVisitorWrapper visitor) - Methode zum Besuchen der Typhierarchie für einen bestimmten Typ unter Verwendung des angegebenen Besuchers.
17 void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - Methode zum Besuchen der Typhierarchie für einen bestimmten Typ unter Verwendung des angegebenen Besuchers.
18 ObjectMapper addHandler(DeserializationProblemHandler h) - Methode zum Hinzufügen eines bestimmten DeserializationProblemHandlers zur Behandlung bestimmter Probleme während der Deserialisierung.
19 ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - Methode zum Hinzufügen von Mix-In-Annotationen zum Erweitern der angegebenen Klasse oder Schnittstelle.
20 boolean canDeserialize(JavaType type) - Methode, die aufgerufen werden kann, um zu überprüfen, ob der Mapper glaubt, ein Objekt eines bestimmten Typs deserialisieren zu können.
21 boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - Eine Methode, die canDeserialize (JavaType) ähnelt, jedoch das tatsächliche Throwable zurückgeben kann, das beim Versuch, einen Serializer zu erstellen, ausgelöst wurde. Dies kann hilfreich sein, um das eigentliche Problem herauszufinden.
22 boolean canSerialize(Class<?> type) - Methode, die aufgerufen werden kann, um zu überprüfen, ob der Mapper glaubt, eine Instanz einer bestimmten Klasse serialisieren zu können.
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - Eine Methode ähnlich der von canSerialize (Class), die jedoch das tatsächliche Throwable zurückgeben kann, das beim Versuch, einen Serializer zu erstellen, ausgelöst wurde. Dies kann hilfreich sein, um herauszufinden, wo das eigentliche Problem liegt.
24 ObjectMapper clearProblemHandlers() - Methode zum Entfernen aller registrierten DeserializationProblemHandlers-Instanzen aus diesem Mapper.
25 MutableConfigOverride configOverride(Classlt;?> type) - Accessor zum Abrufen eines veränderbaren Konfigurationsüberschreibungsobjekts für einen bestimmten Typ, das zum Hinzufügen oder Ändern von Überschreibungen pro Typ erforderlich ist, die auf Eigenschaften eines bestimmten Typs angewendet werden.
26 ObjectMapper configure(DeserializationFeature f, boolean state) - Methode zum Ändern des Status einer Ein / Aus-Deserialisierungsfunktion für diesen Objekt-Mapper.
27 ObjectMapper configure(JsonGenerator.Feature f, boolean state) - Methode zum Ändern des Status einer Ein / Aus-JsonGenerator-Funktion für Generatorinstanzen, die dieser Objekt-Mapper erstellt.
28 ObjectMapper configure(JsonParser.Feature f, boolean state) - Methode zum Ändern des Status des angegebenen JsonParser.Features für Parser-Instanzen, die dieser Objekt-Mapper erstellt.
29 ObjectMapper configure(MapperFeature f, boolean state) - Methode zum Ändern des Status einer Ein / Aus-Mapper-Funktion für diese Mapper-Instanz.
30 ObjectMapper configure(SerializationFeature f, boolean state) - Methode zum Ändern des Status einer Ein / Aus-Serialisierungsfunktion für diesen Objekt-Mapper.
31 JavaType constructType(Type t) - Praktische Methode zum Erstellen von JavaType aus einem bestimmten Typ (normalerweise java.lang.Class), jedoch ohne expliziten Kontext.
32 <T> T convertValue(Object fromValue, Class<T> toValueType) - Praktische Methode zur zweistufigen Konvertierung von einem bestimmten Wert in eine Instanz eines bestimmten Werttyps, wenn (aber nur wenn!) Konvertierung erforderlich ist.
33 <T> T convertValue(Object fromValue, JavaType toValueType) - Siehe convertValue (Objekt, Klasse)
34 <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - Siehe convertValue (Objekt, Klasse)
35 ObjectMapper copy() - Methode zum Erstellen einer neuen ObjectMapper-Instanz mit derselben Anfangskonfiguration wie diese Instanz.
36 ArrayNode createArrayNode() - Hinweis: Der Rückgabetyp ist eine Co-Variante, da die grundlegende ObjectCodec-Abstraktion nicht auf konkrete Knotentypen verweisen kann (da er Teil des Kernpakets ist, während Impls Teil des Mapper-Pakets sind).
37 ObjectNode createObjectNode() - Hinweis: Der Rückgabetyp ist eine Co-Variante, da die grundlegende ObjectCodec-Abstraktion nicht auf konkrete Knotentypen verweisen kann (da er Teil des Kernpakets ist, während Impls Teil des Mapper-Pakets sind).
38 protected ClassIntrospector defaultClassIntrospector() - Überschreibbare Hilfsmethode zum Erstellen des zu verwendenden Standard-ClassIntrospector.
39 ObjectMapper disable(DeserializationFeature feature) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
40 ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
41 ObjectMapper disable(JsonGenerator.Feature... features) - Methode zum Deaktivieren des angegebenen JsonGenerator.Features für Parser-Instanzen, die dieser Objekt-Mapper erstellt.
42 ObjectMapper disable(JsonParser.Feature... features) - Methode zum Deaktivieren des angegebenen JsonParser.Features für Parser-Instanzen, die dieser Objekt-Mapper erstellt.
43 ObjectMapper disable(MapperFeature... f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
44 ObjectMapper disable(SerializationFeature f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
45 ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
46 ObjectMapper disableDefaultTyping()- Methode zum Deaktivieren der automatischen Aufnahme von Typinformationen; In diesem Fall verfügen nur explizit kommentierte Typen (solche mit JsonTypeInfo) über zusätzliche eingebettete Typinformationen.
47 ObjectMapper enable(DeserializationFeature feature) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
48 ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
49 ObjectMapper enable(JsonGenerator.Feature... features) - Methode zum Aktivieren des angegebenen JsonGenerator.Features für Parser-Instanzen, die dieser Objekt-Mapper erstellt.
50 ObjectMapper enable(JsonParser.Feature... features) - Methode zum Aktivieren der angegebenen JsonParser.Features für Parser-Instanzen, die dieser Objekt-Mapper erstellt.
51 ObjectMapper enable(MapperFeature... f) - Methode zum Aktivieren bestimmter MapperConfig-Funktionen.
52 ObjectMapper enable(SerializationFeature f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktion.
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - Methode zum Aktivieren der angegebenen DeserializationConfig-Funktionen.
54 ObjectMapper enableDefaultTyping() - Komfortmethode, die dem Aufruf entspricht
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - Komfortmethode, die dem Aufruf entspricht
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - Methode zum Aktivieren der automatischen Aufnahme von Typinformationen, die für die ordnungsgemäße Deserialisierung polymorpher Typen erforderlich ist (es sei denn, Typen wurden mit JsonTypeInfo kommentiert).
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - Methode zum Aktivieren der automatischen Aufnahme von Typinformationen - erforderlich für die ordnungsgemäße Deserialisierung polymorpher Typen (sofern die Typen nicht mit JsonTypeInfo kommentiert wurden) - Verwendung des Einschlussmechanismus "As.PROPERTY" und des angegebenen Eigenschaftsnamens für die Aufnahme (Standard ist "@" Klasse ", da Standardtypinformationen immer den Klassennamen als Typkennung verwenden)
58 ObjectMapper findAndRegisterModules() - Komfortmethode, die funktional äquivalent ist zu: mapper.registerModules (mapper.findModules ());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - Methode zum Auffinden verfügbarer Methoden mithilfe der JDK ServiceLoader-Funktion zusammen mit dem vom Modul bereitgestellten SPI.
61 static List<Module> findModules(ClassLoader classLoader) - Methode zum Auffinden verfügbarer Methoden mithilfe der JDK ServiceLoader-Funktion zusammen mit dem vom Modul bereitgestellten SPI.
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - Methode, die das gemeinsam genutzte Standardobjekt DeserializationConfig zurückgibt, das Konfigurationseinstellungen für die Deserialisierung definiert.
64 DeserializationContext getDeserializationContext() - Methode zum Abrufen des aktuellen DeserializationContext.
65 JsonFactory getFactory() - Methode, mit der JsonFactory abgerufen werden kann, die dieser Mapper verwendet, wenn JsonParser und / oder JsonGenerators erstellt werden müssen.
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory()- Veraltet. Seit 2.1: Verwenden Sie stattdessen getFactory ()
68 JsonNodeFactory getNodeFactory() - Methode, mit der JsonNodeFactory abgerufen werden kann, die dieser Mapper beim direkten Erstellen von Root-JsonNode-Instanzen für Bäume verwendet.
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - Methode, die das gemeinsam genutzte Standardobjekt SerializationConfig zurückgibt, das Konfigurationseinstellungen für die Serialisierung definiert.
71 SerializerFactory getSerializerFactory() - Methode zum Abrufen der aktuellen SerializerFactory.
72 SerializerProvider getSerializerProvider() - Accessor für die "Blueprint" -Instanz (oder Factory-Instanz), aus der Instanzen durch Aufrufen von DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory) erstellt werden.
73 SerializerProvider getSerializerProviderInstance() - Accessor zum Erstellen und Zurückgeben einer SerializerProvider-Instanz, die für den Zugriff auf Serializer verwendet werden kann.
74 SubtypeResolver getSubtypeResolver() - Methode für den Zugriff auf den verwendeten Subtyp-Resolver.
75 TypeFactory getTypeFactory() - Accessor zum Abrufen der aktuell konfigurierten TypeFactory-Instanz.
76 VisibilityChecker<?> getVisibilityChecker()- Methode für den Zugriff auf die aktuell konfigurierte Sichtbarkeitsprüfung; Objekt, mit dem bestimmt wird, ob ein bestimmtes Eigenschaftselement (Methode, Feld, Konstruktor) automatisch erkannt werden kann oder nicht.
77 boolean isEnabled(DeserializationFeature f) - Methode zum Überprüfen, ob eine bestimmte deserialisierungsspezifische Funktion aktiviert ist.
78 boolean isEnabled(JsonFactory.Feature f) - Komfortmethode, äquivalent zu:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 boolean isEnabled(MapperFeature f) - Methode zum Überprüfen, ob eine bestimmte MapperFeature aktiviert ist.
82 boolean isEnabled(SerializationFeature f) - Methode zum Überprüfen, ob eine bestimmte serialisierungsspezifische Funktion aktiviert ist.
83 int mixInCount()
84 ObjectReader reader() - Factory-Methode zum Erstellen von ObjectReader mit Standardeinstellungen.
85 ObjectReader reader(Base64Variant defaultBase64) - Factory-Methode zum Erstellen von ObjectReader, die die angegebene Base64-Codierungsvariante für Base64-codierte Binärdaten verwendet.
86 ObjectReader reader(Class<?> type)- Veraltet. Verwenden Sie seit 2.5 stattdessen readerFor (Class)
87 ObjectReader reader(ContextAttributes attrs) - Factory-Methode zum Erstellen von ObjectReader, die angegebene Standardattribute verwendet.
88 ObjectReader reader(DeserializationFeature feature) - Factory-Methode zum Erstellen von ObjectReader mit aktivierter Funktion (im Vergleich zu den Einstellungen dieser Mapper-Instanz).
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - Factory-Methode zum Erstellen von ObjectReader mit aktivierten angegebenen Funktionen (im Vergleich zu den Einstellungen dieser Mapper-Instanz).
90 ObjectReader reader(FormatSchema schema) - Factory-Methode zum Erstellen von ObjectReader, die ein bestimmtes Schemaobjekt an JsonParser übergibt, das zum Lesen von Inhalten verwendet wird.
91 ObjectReader reader(InjectableValues injectableValues) - Factory-Methode zum Erstellen von ObjectReader, die angegebene injizierbare Werte verwendet.
92 ObjectReader reader(JavaType type)- Veraltet. Verwenden Sie seit 2.5 stattdessen readerFor (JavaType)
93 ObjectReader reader(JsonNodeFactory f) - Factory-Methode zum Erstellen von ObjectReader, die die angegebene JsonNodeFactory zum Erstellen von JSON-Bäumen verwendet.
94 ObjectReader reader(TypeReference<?> type)- Veraltet. Verwenden Sie seit 2.5 stattdessen readerFor (TypeReference)
95 ObjectReader readerFor(Class<?> type) - Factory-Methode zum Erstellen von ObjectReader, mit der Instanzen des angegebenen Typs gelesen oder aktualisiert werden
96 ObjectReader readerFor(JavaType type) - Factory-Methode zum Erstellen von ObjectReader, mit der Instanzen des angegebenen Typs gelesen oder aktualisiert werden
97 ObjectReader readerFor(TypeReference<?> type) - Factory-Methode zum Erstellen von ObjectReader, mit der Instanzen des angegebenen Typs gelesen oder aktualisiert werden
98 ObjectReader readerForUpdating(Object valueToUpdate) - Factory-Methode zum Erstellen von ObjectReader, mit der ein bestimmtes Objekt (normalerweise Bean, kann aber auch eine Sammlung oder Map, aber KEIN Array sein) mit JSON-Daten aktualisiert werden.
99 ObjectReader readerWithView(Class<?> view) - Factory-Methode zum Erstellen von ObjectReader, mit der Objekte mithilfe der angegebenen JSON-Ansicht (Filter) deserialisiert werden.
100 JsonNode readTree(byte[] content) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
101 JsonNode readTree(File file) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
102 JsonNode readTree(InputStream in) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
103 <T extends TreeNode> T readTree(JsonParser p) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
104 JsonNode readTree(Reader r) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
105 JsonNode readTree(String content) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
106 JsonNode readTree(URL source) - Methode zum Deserialisieren von JSON-Inhalten als Baum, der mit einer Reihe von JsonNode-Instanzen ausgedrückt wird.
107 <T> T readValue(byte[] src, Class<T> valueType)
108 <T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
109 <T> T readValue(byte[] src, int offset, int len, JavaType valueType)
110 <T> T readValue(byte[] src, int offset, int len, TypeReference valueTypeRef)
111 <T> T readValue(byte[] src, JavaType valueType)
112 <T> T readValue(byte[] src, TypeReference valueTypeRef)
113 <T> T readValue(DataInput src, Class<T> valueType)
114 <T> T readValue(DataInput src, JavaType valueType)
115 <T> T readValue(File src, Class<T> valueType) - Methode zum Deserialisieren von JSON-Inhalten aus einer bestimmten Datei in einen bestimmten Java-Typ.
116 <T> T readValue(File src, JavaType valueType) - Methode zum Deserialisieren von JSON-Inhalten aus einer bestimmten Datei in einen bestimmten Java-Typ.
117 <T> T readValue(File src, TypeReference valueTypeRef) - Methode zum Deserialisieren von JSON-Inhalten aus einer bestimmten Datei in einen bestimmten Java-Typ.
118 <T> T readValue(InputStream src, Class<T> valueType)
119 <T> T readValue(InputStream src, JavaType valueType)
120 <T> T readValue(InputStream src, TypeReference valueTypeRef)
121 <T> T readValue(JsonParser p, Class<T> valueType) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
122 <T> T readValue(JsonParser p, JavaType valueType) - Typensichere überladene Methode, im Grunde ein Alias ​​für readValue (JsonParser, Class).
123 <T> T readValue(JsonParser p, ResolvedType valueType) - Methode zum Deserialisieren von JSON-Inhalten in einen Java-Typ, auf den als Argument verwiesen wird.
124 <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - Methode zum Deserialisieren von JSON-Inhalten in einen Java-Typ, auf den als Argument verwiesen wird.
125 <T> T readValue(Reader src, Class<T> valueType) - -
1 <T> T readValue(Reader src, JavaType valueType)
126 <T> T readValue(Reader src, TypeReference valueTypeRef)
127 <T> T readValue(String content, Class<T> valueType) - Methode zum Deserialisieren von JSON-Inhalten aus der angegebenen JSON-Inhaltszeichenfolge.
128 <T> T readValue(String content, JavaType valueType) - Methode zum Deserialisieren von JSON-Inhalten aus der angegebenen JSON-Inhaltszeichenfolge.
129 <T> T readValue(String content, TypeReference valueTypeRef) - Methode zum Deserialisieren von JSON-Inhalten aus der angegebenen JSON-Inhaltszeichenfolge.
130 <T> T readValue(URL src, Class<T> valueType) - Methode zum Deserialisieren von JSON-Inhalten aus einer bestimmten Ressource in einen bestimmten Java-Typ.
131 <T> T readValue(URL src, JavaType valueType)
132 <T> T readValue(URL src, TypeReference valueTypeRef) - Methode zum Deserialisieren von JSON-Inhalten aus einer bestimmten Ressource in einen bestimmten Java-Typ.
133 <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - Komfortmethode, die in ihrer Funktion äquivalent ist zu:
134 <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - Komfortmethode, die in ihrer Funktion äquivalent ist zu:
135 <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - Komfortmethode, die in ihrer Funktion äquivalent ist zu:
136 <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - Methode zum Lesen der Sequenz von Objekten aus dem Parser-Stream.
137 ObjectMapper registerModule(Module module)- Methode zum Registrieren eines Moduls, das die von diesem Mapper bereitgestellten Funktionen erweitern kann; Zum Beispiel durch Hinzufügen von Anbietern für benutzerdefinierte Serializer und Deserializer.
138 ObjectMapper registerModules(Iterable<Module> modules)- Komfortmethode zum Registrieren bestimmter Module in der richtigen Reihenfolge; funktional äquivalent zu:
139 ObjectMapper registerModules(Module... modules)- Komfortmethode zum Registrieren bestimmter Module in der richtigen Reihenfolge; funktional äquivalent zu:
140 void registerSubtypes(NamedType... types) - Methode zum Registrieren der angegebenen Klasse als Subtyp, sodass die typnamenbasierte Auflösung Supertypen mit Subtypen verknüpfen kann (als Alternative zur Verwendung von Anmerkungen).
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - Methode zum Festlegen des AnnotationIntrospector, der von dieser Mapper-Instanz sowohl für die Serialisierung als auch für die Deserialisierung verwendet wird.
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - Methode zum Ändern von AnnotationIntrospector-Instanzen, die von dieser Mapper-Instanz für die Serialisierung und Deserialisierung verwendet werden, wobei diese separat angegeben werden, damit unterschiedliche Introspektionen für verschiedene Aspekte verwendet werden können.
143 ObjectMapper setBase64Variant(Base64Variant v) - Methode zum Konfigurieren der Standard-Base64Variant, die von Byte [] -Serialisierern und -Deserialisierern verwendet wird.
144 ObjectMapper setConfig(DeserializationConfig config) - Methode, mit der das zugrunde liegende DeserializationConfig-Objekt überschrieben werden kann.
145 ObjectMapper setConfig(SerializationConfig config) - Methode, mit der das zugrunde liegende SerializationConfig-Objekt überschrieben werden kann, das serialisierungsspezifische Konfigurationseinstellungen enthält.
146 ObjectMapper setDateFormat(DateFormat dateFormat) - Methode zum Konfigurieren des Standard-DateFormats, das beim Serialisieren von Zeitwerten als Strings und beim Deserialisieren von JSON-Strings verwendet wird.
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - Methode zum Festlegen von PrettyPrinter, die verwendet werden soll, wenn "Standard-Pretty-Printing" aktiviert ist (durch Aktivieren von SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - Methode zum Aktivieren der automatischen Aufnahme von Typinformationen unter Verwendung des angegebenen Handlerobjekts zum Bestimmen, welche Typen davon betroffen sind, sowie Details zum Einbetten von Informationen.
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - Methode zum Konfigurieren dieses Mappers für die Verwendung des angegebenen FilterProviders zum Zuordnen von Filter-IDs zu tatsächlichen Filterinstanzen.
150 Object setHandlerInstantiator(HandlerInstantiator hi) - Methode zum Konfigurieren von HandlerInstantiator zum Erstellen von Instanzen von Handlern (z. B. Serializer, Deserializer, Typ- und Typ-ID-Resolver) für eine bestimmte Klasse.
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - Methode zum Konfigurieren von InjectableValues, mit der zu injizierende Werte gefunden wurden.
152 ObjectMapper setLocale(Locale l) - Methode zum Überschreiben des Standardgebietsschemas für die Formatierung.
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- Veraltet. Seit 2.5: ersetzt durch eine fließende Form der Methode; setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>).
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - Methode, die aufgerufen werden kann, um einen bestimmten Resolver zum Auffinden der zu verwendenden Mix-In-Klassen anzugeben und direkt hinzugefügte Zuordnungen zu überschreiben.
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - Methode zum Definieren von Mix-In-Annotationen zum Erweitern von Annotationen, die verarbeitbare (serialisierbare / deserialisierbare) Klassen haben.
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - Methode zum Angeben von JsonNodeFactory zum Erstellen von Baumknoten auf Stammebene (über die Methode createObjectNode ()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - Methode zum Festlegen der Standardstrategie für die Einbeziehung von POJO-Eigenschaften für die Serialisierung.
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - Methode zum Festlegen der zu verwendenden benutzerdefinierten Eigenschaftsbenennungsstrategie.
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - Komfortmethode, die dem Aufruf entspricht:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - Methode zum Festlegen einer bestimmten SerializerFactory zum Erstellen von (Bean-) Serialisierern.
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - Methode zum Festlegen der SerializerProvider-Instanz "blueprint" als Basis für die tatsächlichen Providerinstanzen, die für das Caching von JsonSerializer-Instanzen verwendet werden sollen.
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - Methode zum Festlegen des zu verwendenden benutzerdefinierten Subtyp-Resolvers.
163 ObjectMapper setTimeZone(TimeZone tz) - Methode zum Überschreiben der Standardzeitzone für die Formatierung.
164 ObjectMapper setTypeFactory(TypeFactory f) - Methode, mit der die von diesem Mapper verwendete TypeFactory-Instanz überschrieben werden kann.
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - Komfortmethode, mit der die Konfiguration für zugrunde liegende VisibilityCheckers geändert werden kann, um Details darüber zu ändern, welche Arten von Eigenschaften automatisch erkannt werden.
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - Methode zum Festlegen des aktuell konfigurierten VisibilityChecker-Objekts, mit dem bestimmt wird, ob ein bestimmtes Eigenschaftselement (Methode, Feld, Konstruktor) automatisch erkannt werden kann oder nicht.
167 void setVisibilityChecker(VisibilityChecker<?> vc)- Veraltet. Verwenden Sie seit 2.6 stattdessen setVisibility (VisibilityChecker).
168 JsonParser treeAsTokens(TreeNode n) - Methode zum Erstellen eines JsonParser aus einer JSON-Baumdarstellung.
169 <T> T treeToValue(TreeNode n, Class<T> valueType) - Praktische Konvertierungsmethode, mit der Daten, die in einem JSON-Baum enthalten sind, in einen bestimmten Werttyp (normalerweise Bean) gebunden werden.
170 <T extends JsonNode> T valueToTree(Object fromValue)- Umkehrung von treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); Wenn ein Wert (normalerweise Bean) angegeben wird, wird eine äquivalente JSON-Baumdarstellung erstellt.
171 Version version() - Methode, die Versionsinformationen zurückgibt, die in jar gespeichert und aus diesem gelesen werden, das diese Klasse enthält.
172 ObjectWriter writer() - Praktische Methode zum Erstellen von ObjectWriter mit Standardeinstellungen.
173 ObjectWriter writer(Base64Variant defaultBase64) - Factory-Methode zum Erstellen von ObjectWriter, die die angegebene Base64-Codierungsvariante für Base64-codierte Binärdaten verwendet.
174 ObjectWriter writer(CharacterEscapes escapes) - -
175 ObjectWriter writer(ContextAttributes attrs) - Factory-Methode zum Erstellen von ObjectWriter, die angegebene Standardattribute verwendet.
176 ObjectWriter writer(DateFormat df)- Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte mit dem angegebenen DateFormat serialisiert werden. oder, wenn null übergeben wird, einen Zeitstempel (64-Bit-Nummer).
177 ObjectWriter writer(FilterProvider filterProvider) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte mit dem angegebenen Filteranbieter serialisiert werden.
178 ObjectWriter writer(FormatSchema schema) - Factory-Methode zum Erstellen von ObjectWriter, die ein bestimmtes Schemaobjekt an JsonGenerator übergibt, das zum Schreiben von Inhalten verwendet wird.
179 ObjectWriter writer(PrettyPrinter pp) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte mit dem angegebenen hübschen Drucker zum Einrücken serialisiert werden (oder wenn null, kein hübscher Drucker).
180 ObjectWriter writer(SerializationFeature feature) - Factory-Methode zum Erstellen von ObjectWriter mit aktivierter Funktion (im Vergleich zu den Einstellungen dieser Mapper-Instanz).
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - Factory-Methode zum Erstellen von ObjectWriter mit aktivierten angegebenen Funktionen (im Vergleich zu den Einstellungen dieser Mapper-Instanz).
182 ObjectWriter writerFor(Class<?> rootType) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte unter Verwendung des angegebenen Stammtyps anstelle des tatsächlichen Laufzeitwerttyps serialisiert werden.
183 ObjectWriter writerFor(JavaType rootType) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte unter Verwendung des angegebenen Stammtyps anstelle des tatsächlichen Laufzeitwerttyps serialisiert werden.
184 ObjectWriter writerFor(TypeReference<?> rootType) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte unter Verwendung des angegebenen Stammtyps anstelle des tatsächlichen Laufzeitwerttyps serialisiert werden.
185 ObjectWriter writerWithDefaultPrettyPrinter() - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte mithilfe des hübschen Standarddruckers zum Einrücken serialisiert werden.
186 ObjectWriter writerWithType(Class<?> rootType)- Veraltet. Verwenden Sie seit 2.5 stattdessen writerFor (Class).
187 ObjectWriter writerWithType(JavaType rootType)- Veraltet. Verwenden Sie seit 2.5 stattdessen writerFor (JavaType).
188 ObjectWriter writerWithType(TypeReference<?> rootType)- Veraltet. Verwenden Sie seit 2.5 stattdessen writerFor (TypeReference).
189 ObjectWriter writerWithView(Class<?> serializationView) - Factory-Methode zum Erstellen von ObjectWriter, mit der Objekte mithilfe der angegebenen JSON-Ansicht (Filter) serialisiert werden.
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - Methode zum Serialisieren eines bestimmten JSON-Baums unter Verwendung des bereitgestellten Generators.
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - Methode, mit der jeder Java-Wert als JSON-Ausgabe serialisiert werden kann und in die bereitgestellte Datei geschrieben wird.
194 void writeValue(JsonGenerator g, Object value) - Methode, mit der jeder Java-Wert mit dem bereitgestellten JsonGenerator als JSON-Ausgabe serialisiert werden kann.
195 void writeValue(OutputStream out, Object value) - Methode, mit der ein beliebiger Java-Wert als JSON-Ausgabe unter Verwendung des bereitgestellten Ausgabestreams (unter Verwendung der Codierung JsonEncoding.UTF8) serialisiert werden kann.
196 void writeValue(Writer w, Object value) - Methode, mit der jeder Java-Wert mit dem bereitgestellten Writer als JSON-Ausgabe serialisiert werden kann.
197 byte[] writeValueAsBytes(Object value) - Methode, mit der jeder Java-Wert als Byte-Array serialisiert werden kann.
198 String writeValueAsString(Object value) - Methode, mit der jeder Java-Wert als String serialisiert werden kann.

Methoden geerbt

Diese Klasse erbt Methoden von den folgenden Klassen:

  • java.lang.Object

ObjectMapper-Beispiel

Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl C:/> Jackson_WORKSPACE

Datei: JacksonTester.java

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Objektserialisierung

Lassen Sie uns ein Java-Objekt in eine JSON-Datei serialisieren und dann diese JSON-Datei lesen, um das Objekt zurückzubekommen. In diesem Beispiel haben wir eine Schülerklasse erstellt. Wir erstellen eine student.json-Datei, die eine json-Darstellung des Student-Objekts enthält.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student 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(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Student [ name: Mahesh, age: 10 ]

Datenbindung

Die Datenbindungs-API wird verwendet, um JSON mithilfe des Eigenschaftenzugriffs oder mithilfe von Anmerkungen in und von POJO (Plain Old Java Object) zu konvertieren. Es ist von zwei Arten.

  • Simple Data Binding - Konvertiert JSON in und von Java Maps, Listen, Strings, Numbers, Booleans und Null-Objekten.

  • Full Data Binding - Konvertiert JSON in und von einem beliebigen JAVA-Typ.

ObjectMapper liest / schreibt JSON für beide Arten von Datenbindungen. Die Datenbindung ist am bequemsten und entspricht dem JAXB-Parer für XML.

Einfache Datenbindung

Einfache Datenbindung bezieht sich auf die Zuordnung von JSON zu JAVA Core-Datentypen. Die folgende Tabelle zeigt die Beziehung zwischen JSON-Typen und Java-Typen.

Sr. Nr. JSON-Typ Java-Typ
1 Objekt LinkedHashMap <String, Objekt>
2 Array ArrayList <Objekt>
3 Zeichenfolge String
4 vollständige Nummer Integer, Long oder BigInteger
5 Bruchzahl Double / BigDecimal
6 wahr | falsch Boolescher Wert
7 Null Null

Lassen Sie uns die einfache Datenbindung in Aktion sehen. Hier ordnen wir JAVA-Basistypen direkt JSON zu und umgekehrt.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
         try {
            ObjectMapper mapper = new ObjectMapper();

            Map<String,Object> studentDataMap = new HashMap<String,Object>(); 
            int[] marks = {1,2,3};

            Student student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentDataMap.put("student", student);
            // JAVA String
            studentDataMap.put("name", "Mahesh Kumar");   		
            // JAVA Boolean
            studentDataMap.put("verified", Boolean.FALSE);
            // Array
            studentDataMap.put("marks", marks);

            mapper.writeValue(new File("student.json"), studentDataMap);
            //result student.json
			//{ 
            //   "student":{"name":"Mahesh","age":10},
            //   "marks":[1,2,3],
            //   "verified":false,
            //   "name":"Mahesh Kumar"
            //}
            studentDataMap = mapper.readValue(new File("student.json"), Map.class);

            System.out.println(studentDataMap.get("student"));
            System.out.println(studentDataMap.get("name"));
            System.out.println(studentDataMap.get("verified"));
            System.out.println(studentDataMap.get("marks"));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

{name=Mahesh, age=10}
Mahesh Kumar
false
[1, 2, 3]

Vollständige Datenbindung

Die vollständige Datenbindung bezieht sich auf die Zuordnung von JSON zu einem beliebigen JAVA-Objekt.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
//map JSON content to Student object
Student student = mapper.readValue(new File("student.json"), Student.class);
//map Student object to JSON content
mapper.writeValue(new File("student.json"), student);

Lassen Sie uns die einfache Datenbindung in Aktion sehen. Hier ordnen wir JAVA Object direkt JSON zu und umgekehrt.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student 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(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Student [ name: Mahesh, age: 10 ]

Datenbindung mit Generika

Bei der einfachen Datenbindung haben wir die Map-Klasse verwendet, die String als Schlüssel und Object als Wertobjekt verwendet. Stattdessen können wir ein konkretes Java-Objekt verwenden und cast eingeben, um es für die JSON-Bindung zu verwenden.

Betrachten Sie das folgende Beispiel mit einer Klasse UserData, einer Klasse, die benutzerspezifische Daten enthält.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
         try {
            ObjectMapper mapper = new ObjectMapper();

            Map<String, UserData> userDataMap = new HashMap<String, UserData>();
            UserData studentData = new UserData(); 
            int[] marks = {1,2,3};

            Student student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentData.setStudent(student);
            // JAVA String
            studentData.setName("Mahesh Kumar");
            // JAVA Boolean
            studentData.setVerified(Boolean.FALSE);
            // Array
            studentData.setMarks(marks);
            TypeReference ref = new TypeReference<Map<String,UserData>>() { };
            userDataMap.put("studentData1", studentData);
            mapper.writeValue(new File("student.json"), userDataMap);
            //{
            //   "studentData1":
            //	 {
            //		"student":
            //		{
            //			"name":"Mahesh",
            //			"age":10
            //      },
            //      "name":"Mahesh Kumar",
            //      "verified":false,
            //      "marks":[1,2,3]
            //   }
            //}
            userDataMap = mapper.readValue(new File("student.json"), ref);

            System.out.println(userDataMap.get("studentData1").getStudent());
            System.out.println(userDataMap.get("studentData1").getName());
            System.out.println(userDataMap.get("studentData1").getVerified());
            System.out.println(Arrays.toString(userDataMap.get("studentData1").getMarks()));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

class UserData {
   private Student student;
   private String name;
   private Boolean verified;
   private int[] marks;

   public UserData(){}

   public Student getStudent() {
      return student;
   }
   public void setStudent(Student student) {
      this.student = student;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public Boolean getVerified() {
      return verified;
   }
   public void setVerified(Boolean verified) {
      this.verified = verified;
   }
   public int[] getMarks() {
      return marks;
   }
   public void setMarks(int[] marks) {
      this.marks = marks;
   }		
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Student [ name: Mahesh, age: 10 ]
Mahesh Kumar
false
[1, 2, 3]

Baummodell

Das Baummodell erstellt eine speicherinterne Baumdarstellung des JSON-Dokuments. ObjectMapper-Buildbaum von JsonNode-Knoten. Es ist der flexibelste Ansatz. Es ist analog zum DOM-Parser für XML.

Erstellen Sie einen Baum aus JSON

ObjectMapper stellt nach dem Lesen des JSON einen Zeiger auf den Stammknoten des Baums bereit. Der Wurzelknoten kann verwendet werden, um den gesamten Baum zu durchlaufen. Betrachten Sie das folgende Codeausschnitt, um den Stammknoten einer bereitgestellten JSON-Zeichenfolge abzurufen.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonNode rootNode = mapper.readTree(jsonString);

Baummodell durchqueren

Rufen Sie jeden Knoten unter Verwendung des relativen Pfads zum Stammknoten ab, während Sie den Baum durchlaufen, und verarbeiten Sie die Daten. Betrachten Sie das folgende Codefragment, das den Baum durchläuft, sofern der Stammknoten vorhanden ist.

JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.textValue());
 
JsonNode marksNode = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode.elements();

Beispiel

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

         JsonNode ageNode = rootNode.path("age");
         System.out.println("Age: " + ageNode.intValue());

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         while (iterator.hasNext()) {
            JsonNode marks = iterator.next();
            System.out.print(marks.intValue() + " "); 
         }

         System.out.println("]");
      }
      catch (JsonParseException e) { e.printStackTrace(); }
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Baum zu JSON

In diesem Beispiel haben wir mit JsonNode einen Baum erstellt, ihn in eine JSON-Datei geschrieben und zurückgelesen.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

         JsonNode ageNode = rootNode.path("age");
         System.out.println("Age: " + ageNode.intValue());

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         while (iterator.hasNext()) {
            JsonNode marks = iterator.next();
            System.out.print(marks.intValue() + " "); 
         }

         System.out.println("]");
      }
      catch (JsonParseException e) { e.printStackTrace(); }
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Baum zu Java-Objekten

In diesem Beispiel haben wir mit JsonNode einen Baum erstellt, ihn in eine JSON-Datei geschrieben, den Baum zurückgelesen und ihn dann als Student-Objekt konvertiert.

Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester in C:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         ObjectMapper mapper = new ObjectMapper();

         JsonNode rootNode = mapper.createObjectNode();
         JsonNode marksNode = mapper.createArrayNode();
         ((ArrayNode)marksNode).add(100);
         ((ArrayNode)marksNode).add(90);
         ((ArrayNode)marksNode).add(85);
         ((ObjectNode) rootNode).put("name", "Mahesh Kumar");
         ((ObjectNode) rootNode).put("age", 21);
         ((ObjectNode) rootNode).put("verified", false);
         ((ObjectNode) rootNode).put("marks",marksNode);

         mapper.writeValue(new File("student.json"), rootNode);

         rootNode = mapper.readTree(new File("student.json"));

         Student student = mapper.treeToValue(rootNode, Student.class);

         System.out.println("Name: "+ student.getName());
         System.out.println("Age: " + student.getAge());
         System.out.println("Verified: " + (student.isVerified() ? "Yes":"No"));
         System.out.println("Marks: "+Arrays.toString(student.getMarks()));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}
class Student {
   String name;
   int age;
   boolean verified;
   int[] marks;
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public boolean isVerified() {
      return verified;
   }
   public void setVerified(boolean verified) {
      this.verified = verified;
   }
   public int[] getMarks() {
      return marks;
   }
   public void setMarks(int[] marks) {
      this.marks = marks;
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Streaming-API

Die Streaming-API liest und schreibt JSON-Inhalte als diskrete Ereignisse. JsonParser liest die Daten, während JsonGenerator die Daten schreibt. Es ist der leistungsstärkste Ansatz unter den dreien und weist den geringsten Overhead und den schnellsten Lese- / Schreibvorgang auf. Es ist Analogus to Stax Parser für XML.

In diesem Artikel wird die Verwendung von Jackson-Streaming-APIs zum Lesen und Schreiben von JSON-Daten vorgestellt. Die Streaming-API funktioniert mit dem Token-Konzept und alle Details von Json müssen mit Vorsicht behandelt werden. Es folgen zwei Klassen, die wir in den Beispielen verwenden werden:

  • JsonGenerator - In JSON String schreiben.

  • JsonParser - JSON-Zeichenfolge analysieren.

Schreiben von JSON mit JsonGenerator

Die Verwendung von JsonGenerator ist ziemlich einfach. Erstellen Sie zuerst den JsonGenerator mit der Methode JsonFactory.createJsonGenerator () und verwenden Sie die Methoden write *** (), um jeden json-Wert zu schreiben.

JsonFactory jsonFactory = new JsonFactory();
JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
   "student.json"), JsonEncoding.UTF8);
// {
jsonGenerator.writeStartObject();
// "name" : "Mahesh Kumar"
jsonGenerator.writeStringField("name", "Mahesh Kumar");

Lassen Sie uns JsonGenerator in Aktion sehen. Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester inC:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {         
         JsonFactory jsonFactory = new JsonFactory();
         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File("student.json"), JsonEncoding.UTF8);

         jsonGenerator.writeStartObject();

         // "name" : "Mahesh Kumar"
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 

         // "age" : 21
         jsonGenerator.writeNumberField("age", 21);

         // "verified" : false
         jsonGenerator.writeBooleanField("verified", false);

         // "marks" : [100, 90, 85]
         jsonGenerator.writeFieldName("marks"); 

         // [
         jsonGenerator.writeStartArray(); 
         // 100, 90, 85
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         // ]

         jsonGenerator.writeEndArray(); 

         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();        

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         ObjectMapper mapper = new ObjectMapper();
         Map<String,Object> dataMap = mapper.readValue(new File("student.json"), Map.class);

         System.out.println(dataMap.get("name"));
         System.out.println(dataMap.get("age"));
         System.out.println(dataMap.get("verified"));
         System.out.println(dataMap.get("marks"));
      } 
      catch (JsonParseException e) { e.printStackTrace(); } 
      catch (JsonMappingException e) { e.printStackTrace(); } 
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Mahesh Kumar
21
false
[100, 90, 85]

Lesen von JSON mit JsonParser

Die Verwendung von JsonParser ist wieder ziemlich einfach. Erstellen Sie zuerst den JsonParser mit der JsonFactory.createJsonParser () -Methode und verwenden Sie die nextToken () -Methoden, um jede json-Zeichenfolge als Token zu lesen. Überprüfen Sie jedes Token und verarbeiten Sie es entsprechend

JsonFactory jasonFactory = new JsonFactory();
JsonParser jsonParser = jasonFactory.createJsonParser(new File("student.json"));
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
   //get the current token
   String fieldname = jsonParser.getCurrentName();
   if ("name".equals(fieldname)) {
      //move to next token
      jsonParser.nextToken();
      System.out.println(jsonParser.getText());        	 
   }
}

Lassen Sie uns JsonParser in Aktion sehen. Erstellen Sie eine Java-Klassendatei mit dem Namen JacksonTester inC:\>Jackson_WORKSPACE.

Datei: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {        	
         JsonFactory jsonFactory = new JsonFactory();

         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
            "student.json"), JsonEncoding.UTF8);
         jsonGenerator.writeStartObject();
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 
         jsonGenerator.writeNumberField("age", 21);
         jsonGenerator.writeBooleanField("verified", false); 
         jsonGenerator.writeFieldName("marks"); 
         jsonGenerator.writeStartArray(); // [
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         jsonGenerator.writeEndArray(); 
         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();       	 

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         JsonParser jsonParser = jsonFactory.createParser(new File("student.json"));
         while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            //get the current token
            String fieldname = jsonParser.getCurrentName();
            if ("name".equals(fieldname)) {
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getText());        	 
            }
            if("age".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getNumberValue());        	 
            }
            if("verified".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getBooleanValue());        	 
            }
            if("marks".equals(fieldname)){
               //move to [ 
               jsonParser.nextToken();
               // loop till token equal to "]"
               while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
                  System.out.println(jsonParser.getNumberValue()); 
               }
            }
         }
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Verify the result

Kompilieren Sie die Klassen mit javac Compiler wie folgt:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Führen Sie nun den jacksonTester aus, um das Ergebnis anzuzeigen:

C:\Jackson_WORKSPACE>java JacksonTester

Überprüfen Sie die Ausgabe

Mahesh Kumar
21
false
[100, 90, 85]

JsonGenerator-Klasse

Einführung

JsonParser ist die Basisklasse zum Definieren der öffentlichen API zum Lesen von Json-Inhalten. Instanzen werden mit Factory-Methoden einer JsonFactory-Instanz erstellt.

Klassenerklärung

Es folgt die Erklärung für org.codehaus.jackson.JsonParser Klasse:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Verschachtelte Klassen

SN Klasse & Beschreibung
1 static class JsonParser.Feature
Aufzählung, die alle umschaltbaren Funktionen für Parser definiert.
2 static class JsonParser.NumberType
Aufzählung möglicher "nativer" (optimaler) Typen, die für Zahlen verwendet werden können.

Felder

  • protected PrettyPrinter _cfgPrettyPrinter - Objekt, das während der Ausgabe hübsches Drucken (normalerweise zusätzlicher Leerraum, um die Ergebnisse besser lesbar zu machen) verarbeitet.

  • protected JsonToken _currToken - Zuletzt über nextToken () abgerufenes Token, falls vorhanden.

  • protected int _features - Bit-Flag, bestehend aus Bits, die angeben, welche JsonParser.Features aktiviert sind.

  • protected JsonToken _lastClearedToken - Zuletzt gelöschtes Token, falls vorhanden: Dies ist der Wert, der beim Aufruf von clearCurrentToken () gültig war.

Konstruktoren

SN Konstruktor & Beschreibung
1 protected JsonParser()
Standardkonstruktor
2 protected JsonParser(int features)

Klassenmethoden

SN Methode & Beschreibung
1 protected void _reportError(String msg) - Hilfsmethode zum Erstellen und Auslösen von JsonGenerationException mit der angegebenen Basisnachricht.
2 protected void _reportUnsupportedOperation()
3 protected void _throwInternal()
4 protected void _writeSimpleObject(Object value)- Hilfsmethode, um zu versuchen, die entsprechende Schreibmethode für ein bestimmtes untypisiertes Objekt aufzurufen.
5 boolean canOmitFields() - Introspection-Methode zum Aufrufen, um zu überprüfen, ob das Schreiben von Objektfeldern weggelassen werden kann oder nicht.
6 boolean canUseSchema(FormatSchema schema) - Methode, mit der überprüft werden kann, ob das angegebene Schema mit diesem Generator verwendet werden kann (mithilfe von setSchema (com.fasterxml.jackson.core.FormatSchema)).
7 boolean canWriteBinaryNatively()- Introspektionsmethode, die aufgerufen werden kann, um festzustellen, ob das zugrunde liegende Datenformat "native" Binärdaten unterstützt; das heißt, eine effiziente Ausgabe von binären Inhalten ohne Codierung.
8 boolean canWriteObjectId() - Introspection-Methode, die aufgerufen werden kann, um festzustellen, ob das zugrunde liegende Datenformat eine Art von Objekt-IDs nativ unterstützt (viele nicht; z. B. JSON nicht).
9 boolean canWriteTypeId() - Introspection-Methode, die aufgerufen werden kann, um festzustellen, ob das zugrunde liegende Datenformat eine Art von Typ-IDs nativ unterstützt (viele nicht; z. B. JSON nicht).
10 abstract void close() - Methode zum Schließen dieses Generators, damit kein Inhalt mehr geschrieben werden kann.
11 JsonGenerator configure(JsonGenerator.Feature f, boolean state) - Methode zum Aktivieren oder Deaktivieren der angegebenen Funktion: Überprüfen Sie JsonGenerator.Feature auf eine Liste der verfügbaren Funktionen.
12 void copyCurrentEvent(JsonParser jp) - Methode zum Kopieren des Inhalts des aktuellen Ereignisses, auf das die angegebene Parser-Instanz verweist.
13 void copyCurrentStructure(JsonParser jp) - Methode zum Kopieren des Inhalts des aktuellen Ereignisses und folgender Ereignisse, auf die die angegebene Parser-Instanz verweist.
14 abstract JsonGenerator disable(JsonGenerator.Feature f) - Method for disabling specified features (check JsonGenerator.Feature for list of features)
15 abstract JsonGenerator enable(JsonGenerator.Feature f) - Methode zum Aktivieren bestimmter Parser-Funktionen: Überprüfen Sie JsonGenerator.Feature auf eine Liste der verfügbaren Funktionen.
16 abstract void flush() - Methode, die aufgerufen wird, um gepufferten Inhalt auf das zugrunde liegende Ziel (Ausgabestream, Writer) zu leeren und das Ziel selbst zu leeren.
17 CharacterEscapes getCharacterEscapes() - Methode für den Zugriff auf benutzerdefinierte Escape-Factory-Verwendungen für von JsonGenerators erstellte JsonGenerators.
18 abstract ObjectCodec getCodec() - Methode für den Zugriff auf das Objekt, das zum Schreiben eines Java-Objekts als Json-Inhalt verwendet wird (mithilfe der Methode writeObject (java.lang.Object)).
19 abstract int getFeatureMask() - Massenzugriffsmethode zum Abrufen des Status aller Standard-JsonGenerator.Features.
20 int getHighestEscapedChar() - Accessor-Methode zum Testen des höchsten für diesen Generator konfigurierten nicht entkoppelten Zeichens.
21 abstract JsonStreamContext getOutputContext()
22 Object getOutputTarget()- Methode, mit der auf ein Objekt zugegriffen werden kann, das als Ziel für die generierte Ausgabe verwendet wird; Dies ist normalerweise entweder OutputStream oder Writer, je nachdem, mit welchem ​​Generator gebaut wurde.
23 PrettyPrinter getPrettyPrinter()- Accessor zur Überprüfung, ob dieser Generator einen konfigurierten PrettyPrinter hat; Gibt es zurück, wenn ja, null, wenn keine konfiguriert ist.
24 FormatSchema getSchema() - Methode für den Zugriff auf das Schema, das dieser Parser verwendet, falls vorhanden.
25 abstract boolean isClosed() - Methode, die aufgerufen werden kann, um festzustellen, ob dieser Generator geschlossen ist oder nicht.
26 abstract boolean isEnabled(JsonGenerator.Feature f) - Methode zum Überprüfen, ob eine bestimmte Funktion aktiviert ist.
27 JsonGenerator setCharacterEscapes(CharacterEscapes esc)-Methode zum Definieren von benutzerdefinierten Escape-Factory-Verwendungen für von JsonGenerators erstellte JsonGenerators.
28 abstract JsonGenerator setCodec(ObjectCodec oc)- Methode, die aufgerufen werden kann, um das Objekt festzulegen oder zurückzusetzen, das zum Schreiben von Java-Objekten als JsonContent verwendet werden soll (mithilfe der Methode writeObject (java.lang.Object)).
29 abstract JsonGenerator setFeatureMask(int mask)-Bulk-Set-Methode zum (erneuten) Einstellen von Zuständen aller Standard-JsonGenerator.Features
30 JsonGenerator setHighestNonEscapedChar(int charCode) - Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1).
31 JsonGenerator setPrettyPrinter(PrettyPrinter pp) - Methode zum Einstellen eines benutzerdefinierten hübschen Druckers, der normalerweise zum Hinzufügen von Einrückungen verwendet wird, um die Lesbarkeit zu verbessern.
32 JsonGenerator setRootValueSeparator(SerializableString sep) - Methode, die das Überschreiben von Zeichenfolgen zum Trennen von JSON-Werten auf Stammebene ermöglicht (Standard ist ein Leerzeichen)
33 void setSchema(FormatSchema schema) - Aufzurufende Methode, damit dieser Generator das angegebene Schema verwendet.
33 abstract JsonGenerator useDefaultPrettyPrinter()- Praktische Methode zum Aktivieren des hübschen Druckens mit dem standardmäßigen hübschen Drucker (DefaultPrettyPrinter).
34 abstract Version version()- Accessor zum Herausfinden der Version des Bundles, das diese Generatorinstanz bereitgestellt hat.
35 void writeArrayFieldStart(String fieldName)- Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") (der einen JSON-Array-Wert enthält) und des Markers START_ARRAY.
36 abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- Methode, die einen bestimmten Teil der Binärdaten als base64-codierte Ausgabe als vollständigen String-Wert ausgibt (umgeben von doppelten Anführungszeichen).
37 abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - Methode ähnlich wie writeBinary (Base64Variant, byte [], int, int), jedoch wenn die Eingabe über einen Stream erfolgt und inkrementelle Schreibvorgänge möglich sind, ohne die gesamte Eingabe im Speicher zu halten.
38 void writeBinary(byte[] data)- Ähnlich wie writeBinary (Base64Variant, byte [], int, int), setzt jedoch standardmäßig die Jackson-Standardvariante Base64 (Base64Variants.MIME_NO_LINEFEEDS) voraus.
39 void writeBinary(byte[] data, int offset, int len) - Ähnlich wie writeBinary (Base64Variant, byte [], int, int), jedoch standardmäßig die Standard-Base64-Variante von Jackson (Base64Variants.MIME_NO_LINEFEEDS).
40 int writeBinary(InputStream data, int dataLength) - Ähnlich wie writeBinary (Base64Variant, InputStream, int), setzt jedoch standardmäßig die Jackson-Standardvariante Base64 (Base64Variants.MIME_NO_LINEFEEDS) voraus.
41 void writeBinaryField(String fieldName, byte[] data) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied"), der bestimmte Daten in base64-codierter Form enthält.
42 abstract void writeBoolean(boolean state) - Methode zur Ausgabe des booleschen Json-Literalwerts (einer der Strings 'true' und 'false').
43 void writeBooleanField(String fieldName, boolean value) - Praktische Methode zur Ausgabe eines Feldeintrags ("member") mit einem booleschen Wert.
44 abstract void writeEndArray() - Methode zum Schreiben der schließenden Markierung eines JSON-Array-Werts (Zeichen ']'; plus mögliche Leerraumdekoration, wenn das hübsche Drucken aktiviert ist).
45 abstract void writeEndObject() - Methode zum Schreiben der schließenden Markierung eines JSON-Objektwerts (Zeichen '}'; plus mögliche Leerraumdekoration, wenn das hübsche Drucken aktiviert ist).
46 abstract void writeFieldName(SerializableString name) - Eine Methode ähnlich der von writeFieldName (String), wobei der Hauptunterschied darin besteht, dass sie möglicherweise eine bessere Leistung erbringt, da ein Teil der Verarbeitung (z. B. das Zitieren bestimmter Zeichen oder das Codieren in eine externe Codierung, wenn dies vom Generator unterstützt wird) nur einmal ausgeführt und für spätere Aufrufe wiederverwendet werden kann.
47 abstract void writeFieldName(String name) - Methode zum Schreiben eines Feldnamens (JSON-Zeichenfolge in doppelten Anführungszeichen: syntaktisch identisch mit einem JSON-Zeichenfolgenwert), möglicherweise mit Leerzeichen versehen, wenn das hübsche Drucken aktiviert ist.
48 abstract void writeNull() - Methode zur Ausgabe des Literal-Json-Nullwerts.
49 void writeNullField(String fieldName) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem JSON-Literalwert null.
50 abstract void writeNumber(BigDecimal dec) - Die Methode zur Ausgabe gibt den numerischen Wert von Json an.
51 abstract void writeNumber(BigInteger v) - Methode zur Ausgabe des angegebenen Werts als Json-Nummer.
52 abstract void writeNumber(double d) - Die Methode zur Ausgabe gibt den numerischen Wert von Json an.
53 abstract void writeNumber(float f) - Die Methode zur Ausgabe gibt den numerischen Wert von Json an.
54 abstract void writeNumber(int v) - Methode zur Ausgabe des angegebenen Werts als Json-Nummer.
55 abstract void writeNumber(long v) - Methode zur Ausgabe des angegebenen Werts als Json-Nummer.
56 void writeNumber(short v) - Methode zur Ausgabe des angegebenen Werts als Json-Nummer.
57 abstract void writeNumber(String encodedValue) - Schreibmethode, die für benutzerdefinierte numerische Typen verwendet werden kann, die nicht (einfach?) In "Standard" -Java-Nummerntypen konvertiert werden können.
58 void writeNumberField(String fieldName, BigDecimal value) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem angegebenen numerischen Wert.
59 void writeNumberField(String fieldName, double value) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem angegebenen numerischen Wert.
60 void writeNumberField(String fieldName, float value) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem angegebenen numerischen Wert.
61 void writeNumberField(String fieldName, int value) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem angegebenen numerischen Wert.
62 void writeNumberField(String fieldName, long value) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") mit dem angegebenen numerischen Wert.
63 abstract void writeObject(Object pojo) - Methode zum Schreiben eines bestimmten Java-Objekts (POJO) als Json.
64 void writeObjectField(String fieldName, Object pojo) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied"), dessen Wert den Inhalt eines bestimmten Java-Objekts enthält.
65 void writeObjectFieldStart(String fieldName) - Praktische Methode zur Ausgabe eines Feldeintrags ("Mitglied") (der einen JSON-Objektwert enthält) und der Markierung START_OBJECT.
66 void writeObjectId(Object id) - Methode, die aufgerufen werden kann, um die sogenannte native Objekt-ID auszugeben.
67 void writeObjectRef(Object id) - Methode, die aufgerufen werden kann, um Verweise auf native Objekt-IDs auszugeben.
68 void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped.
69 abstract void writeRaw(char c) - Methode, die den Generator zwingt, den eingegebenen Text ohne Änderungen wörtlich zu kopieren (einschließlich der Tatsache, dass kein Escapezeichen erfolgt und keine Trennzeichen hinzugefügt werden, selbst wenn der Kontext [Array, Objekt] dies andernfalls erfordern würde).
70 abstract void writeRaw(char[] text, int offset, int len) - Methode, die den Generator zwingt, den eingegebenen Text ohne Änderungen wörtlich zu kopieren (einschließlich der Tatsache, dass kein Escapezeichen erfolgt und keine Trennzeichen hinzugefügt werden, selbst wenn der Kontext [Array, Objekt] dies andernfalls erfordern würde).
71 void writeRaw(SerializableString raw) - Methode, die den Generator zwingt, den eingegebenen Text ohne Änderungen wörtlich zu kopieren (einschließlich der Tatsache, dass kein Escapezeichen erfolgt und keine Trennzeichen hinzugefügt werden, selbst wenn der Kontext [Array, Objekt] dies andernfalls erfordern würde).
72 abstract void writeRaw(String text) - Methode, die den Generator zwingt, den eingegebenen Text ohne Änderungen wörtlich zu kopieren (einschließlich der Tatsache, dass kein Escapezeichen erfolgt und keine Trennzeichen hinzugefügt werden, selbst wenn der Kontext [Array, Objekt] dies andernfalls erfordern würde).
73 abstract void writeRaw(String text, int offset, int len) - Methode, die den Generator zwingt, den eingegebenen Text ohne Änderungen wörtlich zu kopieren (einschließlich der Tatsache, dass kein Escapezeichen erfolgt und keine Trennzeichen hinzugefügt werden, selbst wenn der Kontext [Array, Objekt] dies andernfalls erfordern würde).
74 abstract void writeRawUTF8String(byte[] text, int offset, int length) - Methode ähnlich wie writeString (String), die jedoch einen UTF-8-codierten String als Eingabe verwendet, der unverändert ohne zusätzliches Escapezeichen ausgegeben werden soll (Typ hängt vom Datenformat ab; Backslashes für JSON).
75 abstract void writeRawValue(char[] text, int offset, int len)
76 abstract void writeRawValue(String text)- Methode, mit der der Generator gezwungen wird, den eingegebenen Text ohne Änderungen wörtlich zu kopieren, wobei jedoch davon ausgegangen wird, dass er einen einzelnen zulässigen JSON-Wert (Zahl, Zeichenfolge, Boolescher Wert, Null, Array oder Liste) darstellt.
77 abstract void writeRawValue(String text, int offset, int len)
78 abstract void writeStartArray()- Methode zum Schreiben der Startmarkierung eines JSON-Array-Werts (Zeichen '['; plus mögliche Leerraumdekoration, wenn das hübsche Drucken aktiviert ist).
79 abstract void writeStartObject() - Methode zum Schreiben der Startmarkierung eines JSON-Objektwerts (Zeichen '{'; plus mögliche Leerraumdekoration, wenn das hübsche Drucken aktiviert ist).
80 abstract void writeString(char[] text, int offset, int len) - Methode zur Ausgabe eines String-Wertes.
81 abstract void writeString(SerializableString text) - Methode ähnlich wie writeString (String), jedoch mit SerializableString, wodurch der Aufruf möglicherweise effizienter wird, da der Generator möglicherweise in Anführungszeichen und / oder codierte Darstellungen wiederverwenden kann.
82 abstract void writeString(String text) - Methode zur Ausgabe eines String-Wertes.
83 void writeStringField(String fieldName, String value) - Praktische Methode zur Ausgabe eines Feldeintrags ("member") mit einem String-Wert.
84 abstract void writeTree(TreeNode rootNode) - Methode zum Schreiben eines gegebenen JSON-Baums (ausgedrückt als Baum, in dem gegebener JsonNode die Wurzel ist) unter Verwendung dieses Generators.
85 void writeTypeId(Object id) - Methode, die aufgerufen werden kann, um die sogenannte native Typ-ID auszugeben.
86 abstract void writeUTF8String(byte[] text, int offset, int length) - Methode ähnlich wie writeString (String), die jedoch eine UTF-8-codierte Zeichenfolge als Eingabe verwendet, die nicht mit dem erforderlichen Escape-Schema-Datenformat maskiert wurde (für JSON, das für Steuerzeichen und doppelte Anführungszeichen einen Backslash-Escape-Befehl enthält; formatiert etwas anderes).

Methoden geerbt

Diese Klasse erbt Methoden von den folgenden Klassen:

  • java.lang.Object

JsonParser-Klasse

Einführung

JsonParser ist die Basisklasse zum Definieren der öffentlichen API zum Lesen von Json-Inhalten. Instanzen werden mit Factory-Methoden einer JsonFactory-Instanz erstellt.

Klassenerklärung

Es folgt die Erklärung für com.fasterxml.jackson.core.JsonParser Klasse:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Verschachtelte Klassen

SN Klasse & Beschreibung
1 static class JsonParser.Feature
Aufzählung, die alle umschaltbaren Funktionen für Parser definiert.
2 static class JsonParser.NumberType
Aufzählung möglicher "nativer" (optimaler) Typen, die für Zahlen verwendet werden können.

Felder

  • protected int _features - Bit-Flag, bestehend aus Bits, die angeben, welche JsonParser.Features aktiviert sind.

Konstruktoren

SN Konstruktor & Beschreibung
1 protected JsonParser ()
Standardkonstruktor
2 geschützter JsonParser (int Funktionen)

Klassenmethoden

SN Methode & Beschreibung
1 protected JsonParseException _constructError(String msg) - Hilfsmethode zum Erstellen von JsonParseExceptions basierend auf dem aktuellen Status des Parsers.
2 protected void _reportUnsupportedOperation() - Hilfsmethode zum Aufrufen von Vorgängen, die von der Parser-Implementierung nicht unterstützt werden.
3 boolean canReadObjectId() - Introspection-Methode, die aufgerufen werden kann, um festzustellen, ob das zugrunde liegende Datenformat eine Art von Objekt-IDs nativ unterstützt (viele nicht; z. B. JSON nicht).
4 boolean canReadTypeId() - Introspection-Methode, die aufgerufen werden kann, um festzustellen, ob das zugrunde liegende Datenformat eine Art von Typ-IDs nativ unterstützt (viele nicht; z. B. JSON nicht).
5 boolean canUseSchema(FormatSchema schema) - Methode, mit der überprüft werden kann, ob das angegebene Schema mit diesem Parser verwendet werden kann (mithilfe von setSchema (com.fasterxml.jackson.core.FormatSchema)).
6 abstract void clearCurrentToken() - Methode, die aufgerufen wird, um das aktuelle Token zu "verbrauchen", indem es effektiv entfernt wird, sodass hasCurrentToken () false und getCurrentToken () null zurückgibt.
7 abstract void close()- Schließt den Parser, damit keine weitere Iteration oder kein Datenzugriff möglich ist. schließt auch die zugrunde liegende Eingabequelle, wenn der Parser entweder die Eingabequelle besitzt oder die Funktion JsonParser.Feature.AUTO_CLOSE_SOURCE aktiviert ist.
8 JsonParser configure(JsonParser.Feature f, boolean state) - Methode zum Aktivieren oder Deaktivieren der angegebenen Funktion (Liste der Funktionen finden Sie in JsonParser.Feature).
9 JsonParser disable(JsonParser.Feature f) - Methode zum Deaktivieren der angegebenen Funktion (Liste der Funktionen finden Sie in JsonParser.Feature).
10 JsonParser enable(JsonParser.Feature f) - Methode zum Aktivieren der angegebenen Parser-Funktion (Liste der Funktionen finden Sie in JsonParser.Feature).
11 abstract BigInteger getBigIntegerValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT ist und aufgrund seiner Größe nicht als langer Java-Primitivtyp verwendet werden kann.
12 byte[] getBinaryValue() - Praktische Alternative zu getBinaryValue (Base64Variant), bei der standardmäßig Base64Variants.getDefaultVariant () als Standardcodierung verwendet wird.
13 abstract byte[] getBinaryValue(Base64Variant b64variant) - Methode, die zum Lesen (und Konsumieren - von Ergebnissen verwendet werden kann, auf die nach dem Aufruf mit anderen Methoden möglicherweise nicht zugegriffen werden kann) base64-codierte Binärdaten, die im aktuellen JSON-Textwert enthalten sind.
14 boolean getBooleanValue() - Convenience Accessor, der aufgerufen werden kann, wenn das aktuelle Token JsonToken.VALUE_TRUE oder JsonToken.VALUE_FALSE ist.
15 byte getByteValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT ist und als Wert des primitiven Java-Byte-Typs ausgedrückt werden kann.
16 abstract ObjectCodec getCodec() - Accessor für ObjectCodec, der diesem Parser zugeordnet ist, falls vorhanden.
17 abstract JsonLocation getCurrentLocation()- Methode, die den Speicherort des zuletzt verarbeiteten Zeichens zurückgibt; normalerweise für Fehlerberichterstattungszwecke.
18 abstract String getCurrentName()- Methode, die aufgerufen werden kann, um den Namen abzurufen, der dem aktuellen Token zugeordnet ist: Für JsonToken.FIELD_NAMEs entspricht dies der Rückgabe von getText (). Bei Feldwerten steht der Feldname vor dem Feld. und für andere (Array-Werte, Werte auf Stammebene) null.
19 abstract JsonToken getCurrentToken()- Accessor, um herauszufinden, auf welchen Token-Parser derzeit ggf. verweist; Wenn keine vorhanden ist, wird null zurückgegeben.
20 abstract int getCurrentTokenId() - Methode ähnlich wie getCurrentToken (), die jedoch ein int anstelle von JsonToken (Aufzählungswert) zurückgibt.
21 abstract BigDecimal getDecimalValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_FLOAT oder JsonToken.VALUE_NUMBER_INT ist.
22 abstract double getDoubleValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_FLOAT ist und als doppelter primitiver Java-Typ ausgedrückt werden kann.
23 abstract Object getEmbeddedObject() - Accessor, der aufgerufen werden kann, wenn (und nur wenn) das aktuelle Token JsonToken.VALUE_EMBEDDED_OBJECT ist.
24 int getFeatureMask() - Massenzugriffsmethode zum Abrufen des Status aller Standard-JsonParser.Features.
25 abstract float getFloatValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_FLOAT ist und als primitiver Java-Float-Typ ausgedrückt werden kann.
26 Object getInputSource()- Methode, mit der auf ein Objekt zugegriffen werden kann, mit dem auf die zu analysierenden Eingaben zugegriffen wird; Dies ist normalerweise entweder InputStream oder Reader, je nachdem, mit welchem ​​Parser erstellt wurde.
27 abstract int getIntValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT ist und als Wert des primitiven Java int-Typs ausgedrückt werden kann.
28 abstract JsonToken getLastClearedToken() - Methode, die aufgerufen werden kann, um das letzte Token abzurufen, das mit clearCurrentToken () gelöscht wurde.
29 abstract long getLongValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT ist und als Java-Primitivtyp ausgedrückt werden kann.
30 abstract JsonParser.NumberType getNumberType()- Wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT oder JsonToken.VALUE_NUMBER_FLOAT ist, wird eine der Konstanten JsonParser.NumberType zurückgegeben. Andernfalls wird null zurückgegeben.
31 abstract Number getNumberValue() - Generische Methode zum Zugriff auf Zahlenwerte, die für alle Arten von numerischen Werten funktioniert.
32 Object getObjectId() - Methode, die aufgerufen werden kann, um zu überprüfen, ob dem aktuellen Token (einem gerade gelesenen) eine Objekt-ID zugeordnet ist, und diese gegebenenfalls zurückzugeben.
33 abstract JsonStreamContext getParsingContext() - Die Methode, mit der auf den aktuellen Parsing-Kontextleser zugegriffen werden kann, befindet sich in.
34 FormatSchema getSchema() - Methode für den Zugriff auf das Schema, das dieser Parser verwendet, falls vorhanden.
35 short getShortValue() - Numerischer Accessor, der aufgerufen werden kann, wenn das aktuelle Token vom Typ JsonToken.VALUE_NUMBER_INT ist und als Wert des kurzen primitiven Java-Typs ausgedrückt werden kann.
36 abstract String getText()- Methode für den Zugriff auf die Textdarstellung des aktuellen Tokens; Wenn kein aktuelles Token vorhanden ist (vor dem ersten Aufruf von nextToken () oder nach dem Ende der Eingabe), wird null zurückgegeben.
37 abstract char[] getTextCharacters() - Methode ähnlich wie getText (), die jedoch ein zugrunde liegendes (nicht veränderbares) Zeichenarray zurückgibt, das einen Textwert enthält, anstatt ein String-Objekt zu erstellen, das diese Informationen enthält.
38 abstract int getTextLength() - Accessor, der mit getTextCharacters () verwendet wird, um die Länge des im zurückgegebenen Puffer gespeicherten Strings zu ermitteln.
39 abstract int getTextOffset() - Accessor, der mit getTextCharacters () verwendet wird, um den Versatz des ersten Textinhaltszeichens im Puffer zu ermitteln.
40 abstract JsonLocation getTokenLocation()- Methode, die den Startort des aktuellen Tokens zurückgibt; Das heißt, die Position des ersten Zeichens von der Eingabe, die das aktuelle Token startet.
41 Object getTypeId() - Methode, die aufgerufen werden kann, um zu überprüfen, ob dem aktuellen Token (einem gerade gelesenen) eine Typ-ID zugeordnet ist, und wenn ja, diese zurückzugeben.
42 boolean getValueAsBoolean() - Methode, die versucht, den Wert des aktuellen Tokens in einen Booleschen Wert umzuwandeln.
43 boolean getValueAsBoolean(boolean defaultValue) - Methode, die versucht, den Wert des aktuellen Tokens in einen Booleschen Wert umzuwandeln.
44 double getValueAsDouble() - Methode, die versucht, den Wert des aktuellen Tokens in ein Java-Double umzuwandeln.
45 double getValueAsDouble(double defaultValue) - Methode, die versucht, den Wert des aktuellen Tokens in ein Java-Double umzuwandeln.
46 int getValueAsInt() - Methode, die versucht, den Wert des aktuellen Tokens in ein int umzuwandeln.
47 int getValueAsInt(int defaultValue) - Methode, die versucht, den Wert des aktuellen Tokens in ein int umzuwandeln.
48 long getValueAsLong() - Methode, die versucht, den Wert des aktuellen Tokens in einen Long umzuwandeln.
49 long getValueAsLong(long defaultValue) - Methode, die versucht, den Wert des aktuellen Tokens in einen Long umzuwandeln.
50 String getValueAsString() - Methode, die versucht, den Wert des aktuellen Tokens in einen String umzuwandeln.
51 abstract String getValueAsString(String defaultValue) - Methode, die versucht, den Wert des aktuellen Tokens in einen String umzuwandeln.
52 abstract boolean hasCurrentToken() - Methode zum Überprüfen, ob der Parser derzeit auf ein Token verweist (und Daten für dieses Token verfügbar sind).
53 abstract boolean hasTextCharacters() - Methode, mit der ermittelt werden kann, ob der Aufruf von getTextCharacters () der effizienteste Weg ist, um auf Textinhalte zuzugreifen, auf die der Ereignisparser derzeit verweist.
54 abstract boolean isClosed() - Methode, die aufgerufen werden kann, um festzustellen, ob dieser Parser geschlossen ist oder nicht.
55 boolean isEnabled(JsonParser.Feature f) - Methode zum Überprüfen, ob die angegebene JsonParser.Feature aktiviert ist.
56 boolean isExpectedStartArrayToken() - Spezialisierter Accessor, mit dem überprüft werden kann, ob das aktuelle Token das Startarray anzeigt (was normalerweise bedeutet, dass das aktuelle Token JsonToken.START_ARRAY ist), wenn das Startarray erwartet wird.
57 Boolean nextBooleanValue()- Eine Methode, die das nächste Token abruft (als würde nextToken () aufgerufen) und wenn es sich um JsonToken.VALUE_TRUE oder JsonToken.VALUE_FALSE handelt, gibt den übereinstimmenden Booleschen Wert zurück. Andernfalls wird null zurückgegeben.
58 boolean nextFieldName(SerializableString str) - Methode, die das nächste Token abruft (als würde nextToken () aufgerufen) und überprüft, ob es sich um JsonToken.FIELD_NAME mit dem angegebenen Namen handelt, und das Ergebnis dieses Vergleichs zurückgibt.
59 int nextIntValue(int defaultValue)- Eine Methode, die das nächste Token abruft (als würde nextToken () aufgerufen) und wenn es sich um JsonToken handelt. VALUE_NUMBER_INT gibt einen 32-Bit-Int-Wert zurück. Andernfalls wird der angegebene Standardwert zurückgegeben. Dies entspricht funktional:
60 long nextLongValue(long defaultValue)- Methode, die das nächste Token abruft (als würde nextToken () aufgerufen) und wenn es sich um JsonToken handelt. VALUE_NUMBER_INT gibt einen 64-Bit-langen Wert zurück. Andernfalls wird der angegebene Standardwert zurückgegeben. Dies entspricht funktional:
61 String nextTextValue()- Methode, die das nächste Token abruft (als würde nextToken () aufgerufen) und wenn es sich um JsonToken handelt. VALUE_STRING gibt den enthaltenen String-Wert zurück. Andernfalls wird null zurückgegeben.
62 abstract JsonToken nextToken() - Hauptiterationsmethode, die den Stream so weit vorschiebt, dass der Typ des nächsten Tokens, falls vorhanden, bestimmt wird.
63 abstract JsonToken nextValue() - Iterationsmethode, die den Stream so weit vorschiebt, dass der Typ des nächsten Tokens bestimmt wird, der ein Werttyp ist (einschließlich JSON-Array- und Objekt-Start- / Endmarkierungen).
64 abstract void overrideCurrentName(String name) - Methode, mit der der aktuelle (Feld-) Name geändert werden kann.
65 int readBinaryValue(Base64Variant b64variant, OutputStream out) - Ähnlich wie readBinaryValue (OutputStream), ermöglicht jedoch die explizite Angabe der Base64-Variante.
66 int readBinaryValue(OutputStream out) - Methode, die als Alternative zu getBigIntegerValue () verwendet werden kann, insbesondere wenn der Wert groß sein kann.
67 <T> T readValueAs(Class<T> valueType) - Methode zum Deserialisieren von JSON-Inhalten in einen Nicht-Container-Typ (es kann sich jedoch um einen Array-Typ handeln): normalerweise ein Bean-, Array- oder Wrapper-Typ (wie Boolean).
68 <T> T readValueAs(TypeReference<?> valueTypeRef)- Methode zum Deserialisieren von JSON-Inhalten in einen Java-Typ, auf den als Argument verwiesen wird.
69 <T extends TreeNode> T readValueAsTree() - Methode zum Deserialisieren von JSON-Inhalten in ein äquivalentes "Baummodell", dargestellt durch den Stammbaumknoten des resultierenden Modells.
70 <T> Iterator<T> readValuesAs(Class<T> valueType) - Methode zum Lesen der Sequenz von Objekten aus dem Parser-Stream, alle mit demselben angegebenen Werttyp.
71 <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef)- Methode zum Lesen der Sequenz von Objekten aus dem Parser-Stream, alle mit demselben angegebenen Werttyp.
72 int releaseBuffered(OutputStream out) - Methode, die aufgerufen werden kann, um Inhalte zurückzuschieben, die gelesen, aber nicht vom Parser verwendet wurden.
73 int releaseBuffered(Writer w) - Method that can be called to push back any content that has been read but not consumed by the parser.
74 boolean requiresCustomCodec() - Methode, die aufgerufen werden kann, um zu bestimmen, ob ein benutzerdefinierter ObjectCodec zum Binden von Daten erforderlich ist, die mit JsonParser analysiert wurden, das von dieser Factory erstellt wurde (was normalerweise auch für die Serialisierung mit JsonGenerator gilt).
75 abstract void setCodec(ObjectCodec c) - Setter, mit dem gegebenenfalls der mit diesem Parser verknüpfte ObjectCodec definiert werden kann.
76 JsonParser setFeatureMask(int mask) - Bulk-Set-Methode zum (erneuten) Einstellen von Zuständen aller Standard-JsonParser.Features
77 void setSchema(FormatSchema schema) - Aufzurufende Methode, damit dieser Parser das angegebene Schema verwendet.
78 abstract JsonParser skipChildren() - Method that will skip all child tokens of an array or object token that the parser currently points to, iff stream points to JsonToken.START_OBJECT or JsonToken.START_ARRAY.
79 abstract Version version() - Accessor zum Abrufen der Version des Kernpakets bei einer Parser-Instanz.

Methoden geerbt

Diese Klasse erbt Methoden von den folgenden Klassen:

  • java.lang.Object