Jackson - Szybki przewodnik
Jackson jest prostą biblioteką opartą na Javie do serializacji obiektów Java do formatu JSON i odwrotnie.
funkcje
Easy to use. - Jackson API zapewnia wysoki poziom fasad, aby uprościć powszechnie używane przypadki użycia.
No need to create mapping. - Jackson API zapewnia domyślne mapowanie dla większości obiektów przeznaczonych do serializacji.
Performance. - jackson jest cichy i szybki, zajmuje mało pamięci i nadaje się do dużych grafów obiektów lub systemów.
Clean JSON. - jackson tworzy czyste i zwarte wyniki JSON, które są łatwe do odczytania.
No Dependency. - biblioteka jackson nie wymaga żadnej innej biblioteki poza jdk.
Open Source - biblioteka jackson jest open source i można z niej korzystać bezpłatnie.
Trzy sposoby przetwarzania JSON
Jackson zapewnia trzy alternatywne sposoby przetwarzania JSON
Streaming API- odczytuje i zapisuje zawartość JSON jako dyskretne zdarzenia. JsonParser odczytuje dane, podczas gdy JsonGenerator zapisuje dane. Jest to najpotężniejsze podejście spośród trzech, ma najniższe narzuty i najszybsze w operacjach odczytu / zapisu. Jest to parser Analogus do Stax dla XML.
Tree Model- przygotowuje w pamięci drzewo reprezentacji dokumentu JSON. Drzewo kompilacji ObjectMapper węzłów JsonNode. Jest to najbardziej elastyczne podejście. Jest analogiem do parsera DOM dla XML.
Data Binding - konwertuje JSON do iz POJO (zwykły stary obiekt Java) przy użyciu metody dostępu do właściwości lub adnotacji. Jest dwojakiego rodzaju.
Simple Data Binding - Konwertuje JSON do iz Java Maps, list, ciągów znaków, liczb, wartości logicznych i obiektów zerowych.
Full Data Binding - Konwertuje JSON na iz dowolnego typu JAVA.
Wypróbuj opcję online
Naprawdę nie musisz zakładać własnego środowiska, aby rozpocząć naukę Guavy, biblioteki opartej na JAVA. Przyczyna jest bardzo prosta, mamy już skonfigurowane środowisko programowania w języku Java, abyś mógł kompilować i wykonywać wszystkie dostępne przykłady online w tym samym czasie, gdy wykonujesz swoją pracę teoretyczną. Daje ci to pewność co do tego, co czytasz i umożliwia sprawdzenie wyniku za pomocą różnych opcji. Zapraszam do modyfikowania dowolnego przykładu i wykonywania go online.
Spróbuj następującego przykładu za pomocą Try it opcja dostępna w prawym górnym rogu poniższego przykładowego pola kodu:
public class MyFirstJavaProgram { public static void main(String []args) { System.out.println("Hello World"); } }
W przypadku większości przykładów podanych w tym samouczku znajdziesz Try it skorzystaj z niej i ciesz się nauką.
Konfiguracja środowiska lokalnego
Jeśli nadal chcesz skonfigurować środowisko pod kątem języka programowania Java, w tej sekcji omówiono sposób pobierania i konfigurowania środowiska Java na komputerze. Wykonaj poniższe czynności, aby skonfigurować środowisko.
Java SE jest dostępna bezpłatnie pod linkiem Pobierz Javę . Więc pobierasz wersję opartą na systemie operacyjnym.
Postępuj zgodnie z instrukcjami, aby pobrać java i uruchomić .exeaby zainstalować Javę na swoim komputerze. Po zainstalowaniu Javy na komputerze należałoby ustawić zmienne środowiskowe tak, aby wskazywały na prawidłowe katalogi instalacyjne:
Konfigurowanie ścieżki dla systemu Windows 2000 / XP:
Zakładając, że zainstalowałeś Javę w katalogu c: \ Program Files \ java \ jdk :
Kliknij prawym przyciskiem myszy „Mój komputer” i wybierz „Właściwości”.
Kliknij przycisk „Zmienne środowiskowe” na karcie „Zaawansowane”.
Teraz zmień zmienną „Path”, tak aby zawierała również ścieżkę do pliku wykonywalnego Java. Na przykład, jeśli ścieżka jest obecnie ustawiona na „C: \ WINDOWS \ SYSTEM32”, zmień ścieżkę na „C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin”.
Konfigurowanie ścieżki dla Windows 95/98 / ME:
Zakładając, że zainstalowałeś Javę w katalogu c: \ Program Files \ java \ jdk :
Edytuj plik „C: \ autoexec.bat” i dodaj na końcu następujący wiersz:
„SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin”
Konfigurowanie ścieżki dla Linux, UNIX, Solaris, FreeBSD:
Zmienna środowiskowa PATH powinna być ustawiona tak, aby wskazywała, gdzie zostały zainstalowane pliki binarne Java. Zajrzyj do dokumentacji powłoki, jeśli masz z tym problem.
Na przykład, jeśli używasz bash jako powłoki, to dodasz następujący wiersz na końcu swojego '.bashrc: export PATH = / path / to / java: $ PATH'
Popularne edytory Java:
Do pisania programów w języku Java potrzebny będzie edytor tekstu. Na rynku dostępne są jeszcze bardziej wyrafinowane środowiska IDE. Ale na razie możesz rozważyć jedną z następujących kwestii:
Notepad: Na komputerze z systemem Windows możesz użyć dowolnego prostego edytora tekstu, takiego jak Notatnik (zalecany w tym samouczku), TextPad.
Netbeans:jest środowiskiem Java IDE o otwartym kodzie źródłowym i bezpłatnym, które można pobrać z witryny http://www.netbeans.org/index.html.
Eclipse: to także środowisko Java IDE opracowane przez społeczność eclipse open source i można je pobrać z witryny http://www.eclipse.org/.
Pobierz archiwum Jacksona
Pobierz najnowszą wersję pliku jar Jackson z repozytorium Maven - Jackson . W tym samouczku pliki jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar i jackson-databind-2.8.9.jar są pobierane i kopiowane do folderu C: \> jackson.
OS | Nazwa archiwum |
---|---|
Windows | jackson-xxx-2.8.9.jar |
Linux | jackson-xxx-2.8.9.jar |
Prochowiec | jackson-xxx-2.8.9.jar |
Ustaw środowisko Jacksona
Ustaw jackson_HOMEzmienna środowiskowa, aby wskazywała lokalizację katalogu podstawowego, w którym słoik guawy jest przechowywany na twoim komputerze. Zakładając, że wyodrębniliśmy jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar i jackson-databind-2.8.9.jar w folderze jackson w różnych systemach operacyjnych w następujący sposób.
OS | Wynik |
---|---|
Windows | Ustaw zmienną środowiskową jackson_HOME na C: \ jackson |
Linux | export jackson_HOME = / usr / local / jackson |
Prochowiec | export jackson_HOME = / Library / jackson |
Ustaw zmienną CLASSPATH
Ustaw CLASSPATHzmienna środowiskowa wskazująca na lokalizację jar jackson. Zakładając, że przechowujemy jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar i jackson-databind-2.8.9.jar w folderze jackson na różnych systemach operacyjnych w następujący sposób.
OS | Wynik |
---|---|
Windows | Ustaw zmienną środowiskową CLASSPATH na% CLASSPATH%;% jackson_HOME% \ jackson-core-2.8.9.jar;% jackson_HOME% \ jackson-databind-2.8.9.jar;% jackson_HOME% \ jackson-annotations-2.8.9. słoik;.; |
Linux | eksportuj CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :. |
Prochowiec | eksportuj CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :. |
Zanim przejdziemy do szczegółów biblioteki jackson, zobaczmy, jak działa aplikacja. W tym przykładzie utworzyliśmy klasę Student. Utworzymy ciąg JSON ze szczegółami ucznia i deserializujemy go do obiektu ucznia, a następnie serializujemy go do ciągu JSON.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Student [ name: Mahesh, age: 21 ]
{
"name" : "Mahesh",
"age" : 21
}
Kroki do zapamiętania
Poniżej przedstawiono ważne kroki, które należy tutaj rozważyć.
Krok 1: Utwórz obiekt ObjectMapper.
Utwórz obiekt ObjectMapper. Jest to przedmiot wielokrotnego użytku.
ObjectMapper mapper = new ObjectMapper();
Krok 2: DeSerialize JSON to Object.
Użyj metody readValue (), aby pobrać obiekt z JSON. Przekaż ciąg json / źródło ciągu JSON i typ obiektu jako parametr.
//Object to JSON Conversion
Student student = mapper.readValue(jsonString, Student.class);
Krok 3: Serializacja obiektu do formatu JSON.
Użyj metody writeValueAsString (), aby uzyskać reprezentację obiektu w postaci ciągu JSON.
//Object to JSON Conversion
jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
ObjectMapper to główna klasa aktorów w bibliotece Jacksona. Klasa ObjectMapper ObjectMapper zapewnia funkcje odczytu i zapisu JSON do i z podstawowych POJO (zwykłe stare obiekty Java) lub do i z modelu drzewa JSON ogólnego przeznaczenia (JsonNode), a także powiązane funkcje do wykonywania konwersji. Jest również wysoce konfigurowalny do pracy zarówno z różnymi stylami zawartości JSON, jak i do obsługi bardziej zaawansowanych koncepcji obiektów, takich jak polimorfizm i tożsamość obiektu. ObjectMapper działa również jako fabryka dla bardziej zaawansowanych klas ObjectReader i ObjectWriter.
Deklaracja klasy
Poniżej znajduje się deklaracja dla com.fasterxml.jackson.databind.ObjectMapper klasa -
public class ObjectMapper
extends ObjectCodec
implements Versioned, Serializable
Klasy zagnieżdżone
S.No. | Klasa i opis |
---|---|
1 | static class ObjectMapper.DefaultTypeResolverBuilder Customized TypeResolverBuilder, który udostępnia konstruktory rozpoznawania typów używane z tak zwanym „domyślnym typowaniem” (szczegółowe informacje można znaleźć w sekcji enableDefaultTyping ()). |
2 | static class ObjectMapper.DefaultTyping Wyliczenie używane z enableDefaultTyping () w celu określenia, jakiego rodzaju typy (klasy) mają być używane domyślne wpisywanie. |
Pola
protected DeserializationConfig _deserializationConfig - Obiekt konfiguracyjny, który definiuje podstawowe ustawienia globalne procesu serializacji.
protected DefaultDeserializationContext _deserializationContext- obiekt kontekstu Blueprint; przechowywane tutaj, aby umożliwić niestandardowe podklasy.
protected InjectableValues _injectableValues - Dostawca wartości do wstrzyknięcia w zdeserializowanych POJO.
protected JsonFactory _jsonFactory - Fabryka używana do tworzenia wystąpień JsonParser i JsonGenerator w razie potrzeby.
protected SimpleMixInResolver _mixIns - Mapowanie, które definiuje sposób stosowania adnotacji mieszanych: klucz jest typem otrzymywanych dodatkowych adnotacji, a wartością jest typ, który ma adnotacje do „wmieszania”.
protected ConfigOverrides _propertyOverrides - Obecnie aktywne zastąpienia konfiguracji według typu, do których można uzyskać dostęp przez zadeklarowany typ właściwości.
protected Set<Object> _registeredModuleTypes - Zestaw typów modułów (zgodnie z Module.getTypeId (), które zostały zarejestrowane; śledzenie iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS jest włączone, dzięki czemu zduplikowane wywołania rejestracji mogą być ignorowane (aby uniknąć wielokrotnego dodawania tych samych programów obsługi, głównie).
protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - Będziemy używać oddzielnej mapy głównego poziomu do śledzenia deserializatorów głównego poziomu.
protected SerializationConfig _serializationConfig - Obiekt konfiguracyjny, który definiuje podstawowe ustawienia globalne procesu serializacji.
protected SerializerFactory _serializerFactory - Fabryka serializatorów używana do konstruowania serializatorów.
protected DefaultSerializerProvider _serializerProvider - Obiekt zarządzający dostępem do serializatorów używanych do serializacji, w tym buforowania.
protected SubtypeResolver _subtypeResolver - Obiekt używany do rejestrowania podtypów, w razie potrzeby przekształcania ich na nadtypy / podtypy.
protected TypeFactory _typeFactory- Określona fabryka używana do tworzenia instancji JavaType; potrzebne, aby umożliwić modułom dodawanie większej liczby niestandardowych sposobów obsługi typów (głównie w celu obsługi typów języków JVM innych niż Java).
protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR
protected static BaseSettings DEFAULT_BASE - Ustawienia podstawowe zawierają wartości domyślne używane dla wszystkich instancji ObjectMapper.
protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER
Konstruktorzy
S.No. | Konstruktor i opis |
---|---|
1 | ObjectMapper() Konstruktor domyślny, który w razie potrzeby skonstruuje domyślną JsonFactory, używa SerializerProvider jako swojego SerializerProvider i BeanSerializerFactory jako jego SerializerFactory. |
2 | ObjectMapper(JsonFactory jf) Konstruuje wystąpienie, które używa określonego JsonFactory do konstruowania niezbędnych JsonParsers i / lub JsonGenerators. |
3 | ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp) Konstruuje wystąpienie, które używa określonego JsonFactory do konstruowania niezbędnych JsonParsers i / lub JsonGenerators i używa danych dostawców do uzyskiwania dostępu do serializatorów i deserializatorów. |
4 | protected ObjectMapper(ObjectMapper src) Konstruktor kopiujący, używany głównie do obsługi funkcji copy (). |
Metody
Zastępowalna metoda pomocnicza używana do konstruowania SerializerProvider do użycia na potrzeby serializacji. void addMixInAnnotations (Class <?> target, Class <?> mixinSource) - przestarzałe. Od 2.5: zastąpiona płynną formą metody; addMixIn (klasa, klasa). protected DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - wewnętrzna metoda pomocnika wywoływana w celu utworzenia wystąpienia DeserializationContext do deserializacji pojedynczej wartości głównej. JsonSchema generatedJsonSchema (Class <?> T) - przestarzałe. Od wersji 2.6 używaj zewnętrznego generatora schematów JSON (https://github.com/FasterXML/jackson-module-jsonSchema) (który pod maską wywołuje acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper)) void registerSubtypes (Class <?> ... classes) - Metoda rejestracji określonej klasy jako podtypu, dzięki czemu rozpoznawanie oparte na nazwie typu może łączyć nadtypy z podtypami (jako alternatywa dla używania adnotacji). void setFilters (FilterProvider filterProvider) - przestarzałe. Od wersji 2.6 zamiast tego należy używać metody setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) (umożliwia tworzenie łańcuchów) metody fabrycznej do tworzenia ObjectReader, która będzie używać określonych szczegółów ucieczki znaków na wyjściu.1 | protected void _checkInvalidCopy(Class<?> exp) |
2 | protected void _configAndWriteValue(JsonGenerator g, Object value) - Metoda wywoływana w celu skonfigurowania generatora w razie potrzeby, a następnie wywołania funkcji zapisu |
3 | protected Object _convert(Object fromValue, JavaType toValueType) - Rzeczywista implementacja konwersji: zamiast korzystać z istniejących metod odczytu i zapisu, znaczna część kodu jest wbudowana. |
4 | protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - Metoda wywoływana w celu zlokalizowania deserializatora dla przekazanej wartości poziomu głównego. |
5 | protected JsonToken _initForReading(JsonParser p) - Metoda wywoływana w celu zapewnienia, że dany parser jest gotowy do odczytu treści w celu powiązania danych. |
6 | protected ObjectReader _newReader(DeserializationConfig config) - Podklasy metod fabrycznych muszą przesłonić, aby utworzyć instancje ObjectReader odpowiedniego podtypu |
7 | protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - Podklasy metod fabrycznych muszą przesłonić, aby utworzyć instancje ObjectReader odpowiedniego podtypu |
8 | protected ObjectWriter _newWriter(SerializationConfig config) - Podklasy metod fabrycznych muszą przesłonić, aby utworzyć instancje ObjectWriter odpowiedniego podtypu |
9 | protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - Podklasy metod fabrycznych muszą przesłonić, aby utworzyć instancje ObjectWriter odpowiedniego podtypu |
10 | protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - Podklasy metod fabrycznych muszą przesłonić, aby utworzyć instancje ObjectWriter odpowiedniego podtypu. |
11 | protected Object _readMapAndClose(JsonParser p0, JavaType valueType) |
12 | protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - Rzeczywista realizacja odczytu wartości + operacja wiązania. |
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) - Metoda hierarchii typów odwiedzin dla danego typu przy użyciu określonego gościa. |
17 | void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - Metoda hierarchii typów odwiedzin dla danego typu przy użyciu określonego gościa. |
18 | ObjectMapper addHandler(DeserializationProblemHandler h) - Metoda dodawania określonego DeserializationProblemHandler, który ma być używany do obsługi określonych problemów podczas deserializacji. |
19 | ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - Metoda używana do dodawania adnotacji dodawanych w celu rozszerzenia określonej klasy lub interfejsu. |
20 | boolean canDeserialize(JavaType type) - Metoda, którą można wywołać, aby sprawdzić, czy program mapujący uważa, że może deserializować obiekt danego typu. |
21 | boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - Metoda podobna do canDeserialize (JavaType), ale może zwrócić rzeczywisty Throwable, który został wyrzucony podczas próby skonstruowania serializatora: może to być przydatne przy ustalaniu, na czym polega rzeczywisty problem. |
22 | boolean canSerialize(Class<?> type) - Metoda, którą można wywołać, aby sprawdzić, czy program mapujący uważa, że może serializować wystąpienie danej klasy. |
23 | boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - Metoda podobna do canSerialize (Class), ale może zwrócić rzeczywisty Throwable, który został wyrzucony podczas próby skonstruowania serializatora: może to być przydatne w ustaleniu, na czym polega rzeczywisty problem. |
24 | ObjectMapper clearProblemHandlers() - Metoda usuwania wszystkich zarejestrowanych instancji DeserializationProblemHandlers z tego programu mapującego. |
25 | MutableConfigOverride configOverride(Classlt;?> type) - Accessor do uzyskiwania zmiennego obiektu przesłaniającego konfigurację dla danego typu, potrzebnego do dodania lub zmiany przesłonięć według typu zastosowanych do właściwości danego typu. |
26 | ObjectMapper configure(DeserializationFeature f, boolean state) - Metoda zmiany stanu włączania / wyłączania funkcji deserializacji dla tego mapowania obiektów. |
27 | ObjectMapper configure(JsonGenerator.Feature f, boolean state) - Metoda zmiany stanu włączania / wyłączania funkcji JsonGenerator dla instancji generatora tworzonych przez ten obiekt mapujący. |
28 | ObjectMapper configure(JsonParser.Feature f, boolean state) - Metoda zmiany stanu określonego JsonParser.Features dla instancji parsera tworzonych przez ten obiekt mapujący. |
29 | ObjectMapper configure(MapperFeature f, boolean state) - Metoda zmiany stanu włączonej / wyłączonej funkcji mapowania dla tej instancji mapera. |
30 | ObjectMapper configure(SerializationFeature f, boolean state) - Metoda zmiany stanu włączania / wyłączania funkcji serializacji dla tego mapowania obiektów. |
31 | JavaType constructType(Type t) - Wygodna metoda tworzenia JavaType z danego typu (zazwyczaj java.lang.Class), ale bez jawnego kontekstu. |
32 | <T> T convertValue(Object fromValue, Class<T> toValueType) - Wygodna metoda wykonywania dwuetapowej konwersji z podanej wartości na instancję danego typu wartości, jeśli (ale tylko wtedy!) Konwersja jest potrzebna. |
33 | <T> T convertValue(Object fromValue, JavaType toValueType) - Zobacz convertValue (Object, Class) |
34 | <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - Zobacz convertValue (Object, Class) |
35 | ObjectMapper copy() - Metoda tworzenia nowej instancji ObjectMapper, która ma taką samą konfigurację początkową, jak ta instancja. |
36 | ArrayNode createArrayNode() - Uwaga: typ zwracany jest kowarianty, ponieważ podstawowa abstrakcja ObjectCodec nie może odnosić się do konkretnych typów węzłów (ponieważ jest częścią pakietu podstawowego, podczas gdy impls są częścią pakietu mapper) |
37 | ObjectNode createObjectNode() - Uwaga: typ zwracany jest kowarianty, ponieważ podstawowa abstrakcja ObjectCodec nie może odnosić się do konkretnych typów węzłów (ponieważ jest częścią pakietu podstawowego, podczas gdy impls są częścią pakietu mapper) |
38 | protected ClassIntrospector defaultClassIntrospector() - zastępowalna metoda pomocnicza używana do konstruowania domyślnego ClassIntrospectora do użycia. |
39 | ObjectMapper disable(DeserializationFeature feature) - Metoda włączania określonych funkcji DeserializationConfig. |
40 | ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - Metoda włączania określonych funkcji DeserializationConfig. |
41 | ObjectMapper disable(JsonGenerator.Feature... features) - Metoda wyłączania określonego JsonGenerator.Features dla wystąpień parsera, które tworzy ten obiekt mapujący. |
42 | ObjectMapper disable(JsonParser.Feature... features) - Metoda wyłączania określonego JsonParser.Features dla wystąpień parsera, które tworzy ten obiekt mapujący. |
43 | ObjectMapper disable(MapperFeature... f) - Metoda włączania określonych funkcji DeserializationConfig. |
44 | ObjectMapper disable(SerializationFeature f) - Metoda włączania określonych funkcji DeserializationConfig. |
45 | ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - Metoda włączania określonych funkcji DeserializationConfig. |
46 | ObjectMapper disableDefaultTyping()- Metoda wyłączania automatycznego dołączania informacji o typie; jeśli tak, tylko typy z adnotacjami jawnymi (te z JsonTypeInfo) będą miały dodatkowe osadzone informacje o typie. |
47 | ObjectMapper enable(DeserializationFeature feature) - Metoda włączania określonych funkcji DeserializationConfig. |
48 | ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - Metoda włączania określonych funkcji DeserializationConfig. |
49 | ObjectMapper enable(JsonGenerator.Feature... features) - Metoda włączania określonego JsonGenerator.Features dla wystąpień parsera, które tworzy ten obiekt mapujący. |
50 | ObjectMapper enable(JsonParser.Feature... features) - Metoda włączania określonych JsonParser.Features dla wystąpień parsera, które tworzy ten obiekt mapujący. |
51 | ObjectMapper enable(MapperFeature... f) - Metoda włączania określonych funkcji MapperConfig. |
52 | ObjectMapper enable(SerializationFeature f) - Metoda włączania określonej funkcji DeserializationConfig. |
53 | ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - Metoda włączania określonych funkcji DeserializationConfig. |
54 | ObjectMapper enableDefaultTyping() - Wygodna metoda, która jest równoważna z dzwonieniem |
55 | ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - Wygodna metoda, która jest równoważna z dzwonieniem |
56 | ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - Metoda umożliwiająca automatyczne dołączanie informacji o typie, potrzebnych do właściwej deserializacji typów polimorficznych (chyba że typy zostały opatrzone adnotacją JsonTypeInfo). |
57 | ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - Metoda włączania automatycznego dołączania informacji o typie - potrzebna do właściwej deserializacji typów polimorficznych (chyba że typy zostały opatrzone adnotacją JsonTypeInfo) - użycie mechanizmu włączania "As.PROPERTY" i określonej nazwy właściwości do użycia (domyślnie "@ class ", ponieważ domyślne informacje o typie zawsze używają nazwy klasy jako identyfikatora typu) |
58 | ObjectMapper findAndRegisterModules() - Wygodna metoda, która jest funkcjonalnym odpowiednikiem: mapper.registerModules (mapper.findModules ()); |
59 | Class<?> findMixInClassFor(Class<?> cls) |
60 | static List<Module> findModules() - Metoda lokalizowania dostępnych metod z wykorzystaniem narzędzia JDK ServiceLoader wraz z dostarczonym przez moduł SPI. |
61 | static List<Module> findModules(ClassLoader classLoader) - Metoda lokalizowania dostępnych metod z wykorzystaniem narzędzia JDK ServiceLoader wraz z dostarczonym przez moduł SPI. |
62 | DateFormat getDateFormat() |
63 | DeserializationConfig getDeserializationConfig() - Metoda, która zwraca udostępniony domyślny obiekt DeserializationConfig, który definiuje ustawienia konfiguracji dla deserializacji. |
64 | DeserializationContext getDeserializationContext() - Metoda uzyskiwania bieżącego kontekstu deserializacji. |
65 | JsonFactory getFactory() - Metoda, której można użyć do uzyskania JsonFactory, z którego korzysta ten program odwzorowujący, jeśli musi skonstruować JsonParsers i / lub JsonGenerators. |
66 | InjectableValues getInjectableValues() |
67 | JsonFactory getJsonFactory()- wycofane. Od 2.1: Zamiast tego użyj getFactory () |
68 | JsonNodeFactory getNodeFactory() - Metoda, której można użyć do uzyskania JsonNodeFactory, której ten program odwzorowujący będzie używał podczas bezpośredniego konstruowania głównych instancji JsonNode dla drzew. |
69 | PropertyNamingStrategy getPropertyNamingStrategy() |
70 | SerializationConfig getSerializationConfig() - Metoda, która zwraca udostępniony domyślny obiekt SerializationConfig, który definiuje ustawienia konfiguracji dla serializacji. |
71 | SerializerFactory getSerializerFactory() - Metoda pobierania bieżącej SerializerFactory. |
72 | SerializerProvider getSerializerProvider() - Akcesor dla instancji „blueprint” (lub fabryki), z której instancje są tworzone przez wywołanie DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory). |
73 | SerializerProvider getSerializerProviderInstance() - Accessor do konstruowania i zwracania wystąpienia SerializerProvider, które może służyć do uzyskiwania dostępu do serializatorów. |
74 | SubtypeResolver getSubtypeResolver() - Metoda uzyskiwania dostępu do używanego programu rozpoznawania podtypów. |
75 | TypeFactory getTypeFactory() - Accessor do pobierania aktualnie skonfigurowanej instancji TypeFactory. |
76 | VisibilityChecker<?> getVisibilityChecker()- Metoda dostępu do aktualnie skonfigurowanego narzędzia do sprawdzania widoczności; obiekt używany do określenia, czy dany element właściwości (metoda, pole, konstruktor) może być automatycznie wykrywany, czy nie. |
77 | boolean isEnabled(DeserializationFeature f) - Metoda sprawdzania, czy dana funkcja specyficzna dla deserializacji jest włączona. |
78 | boolean isEnabled(JsonFactory.Feature f) - Metoda wygodna, odpowiednik: |
79 | boolean isEnabled(JsonGenerator.Feature f) |
80 | boolean isEnabled(JsonParser.Feature f) |
81 | boolean isEnabled(MapperFeature f) - Metoda sprawdzania, czy dana funkcja MapperFeature jest włączona. |
82 | boolean isEnabled(SerializationFeature f) - Metoda sprawdzania, czy dana funkcja specyficzna dla serializacji jest włączona. |
83 | int mixInCount() |
84 | ObjectReader reader() - Fabryczna metoda tworzenia ObjectReadera z domyślnymi ustawieniami. |
85 | ObjectReader reader(Base64Variant defaultBase64) - Fabryczna metoda konstruowania ObjectReader, która będzie używać określonego wariantu kodowania Base64 dla danych binarnych zakodowanych w formacie Base64. |
86 | ObjectReader reader(Class<?> type)- wycofane. Od wersji 2.5 zamiast tego użyj readerFor (Class) |
87 | ObjectReader reader(ContextAttributes attrs) - Fabryczna metoda konstruowania ObjectReader, która będzie używać określonych atrybutów domyślnych. |
88 | ObjectReader reader(DeserializationFeature feature) - Fabryczna metoda tworzenia ObjectReader z włączoną określoną funkcją (w porównaniu z ustawieniami, które ma ta instancja mapowania). |
89 | ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - Fabryczna metoda konstruowania ObjectReader z włączonymi określonymi funkcjami (w porównaniu z ustawieniami, które ma ta instancja mapowania). |
90 | ObjectReader reader(FormatSchema schema) - Fabryczna metoda konstruowania ObjectReader, która przekaże określony obiekt schematu do JsonParser używanego do odczytu treści. |
91 | ObjectReader reader(InjectableValues injectableValues) - Fabryczna metoda konstruowania ObjectReader, która będzie używać określonych wartości do wstrzykiwania. |
92 | ObjectReader reader(JavaType type)- wycofane. Od wersji 2.5 zamiast tego użyj readerFor (JavaType) |
93 | ObjectReader reader(JsonNodeFactory f) - Fabryczna metoda konstruowania ObjectReader, która będzie używać określonej JsonNodeFactory do konstruowania drzew JSON. |
94 | ObjectReader reader(TypeReference<?> type)- wycofane. Od wersji 2.5 zamiast tego użyj readerFor (TypeReference) |
95 | ObjectReader readerFor(Class<?> type) - Fabryczna metoda konstruowania ObjectReader, która odczyta lub zaktualizuje wystąpienia określonego typu |
96 | ObjectReader readerFor(JavaType type) - Fabryczna metoda konstruowania ObjectReader, która odczyta lub zaktualizuje wystąpienia określonego typu |
97 | ObjectReader readerFor(TypeReference<?> type) - Fabryczna metoda konstruowania ObjectReader, która odczyta lub zaktualizuje wystąpienia określonego typu |
98 | ObjectReader readerForUpdating(Object valueToUpdate) - Fabryczna metoda konstruowania ObjectReader, która zaktualizuje dany Object (zwykle Bean, ale może być również Collection lub Map, ale NIE tablicą) z danymi JSON. |
99 | ObjectReader readerWithView(Class<?> view) - Fabryczna metoda konstruowania ObjectReader, która będzie deserializować obiekty przy użyciu określonego widoku JSON (filtr). |
100 | JsonNode readTree(byte[] content) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
101 | JsonNode readTree(File file) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
102 | JsonNode readTree(InputStream in) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
103 | <T extends TreeNode> T readTree(JsonParser p) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
104 | JsonNode readTree(Reader r) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
105 | JsonNode readTree(String content) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
106 | JsonNode readTree(URL source) - Metoda deserializacji zawartości JSON jako drzewa wyrażona za pomocą zestawu instancji JsonNode. |
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) - Metoda deserializacji zawartości JSON z podanego pliku do danego typu Java. |
116 | <T> T readValue(File src, JavaType valueType) - Metoda deserializacji zawartości JSON z podanego pliku do danego typu Java. |
117 | <T> T readValue(File src, TypeReference valueTypeRef) - Metoda deserializacji zawartości JSON z podanego pliku do danego typu Java. |
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) - Przeciążona metoda bezpieczna dla typów, w zasadzie alias dla readValue (JsonParser, Class). |
123 | <T> T readValue(JsonParser p, ResolvedType valueType) - Metoda deserializacji treści JSON do typu Java, do którego odwołanie jest przekazywane jako argument. |
124 | <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - Metoda deserializacji treści JSON do typu Java, do którego odwołanie jest przekazywane jako argument. |
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) - Metoda deserializacji zawartości JSON z danego ciągu zawartości JSON. |
128 | <T> T readValue(String content, JavaType valueType) - Metoda deserializacji zawartości JSON z danego ciągu zawartości JSON. |
129 | <T> T readValue(String content, TypeReference valueTypeRef) - Metoda deserializacji zawartości JSON z danego ciągu zawartości JSON. |
130 | <T> T readValue(URL src, Class<T> valueType) - Metoda deserializacji treści JSON z danego zasobu do danego typu Java. |
131 | <T> T readValue(URL src, JavaType valueType) |
132 | <T> T readValue(URL src, TypeReference valueTypeRef) - Metoda deserializacji treści JSON z danego zasobu do danego typu Java. |
133 | <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - Metoda wygodna, funkcjonalnie równoważna: |
134 | <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - Metoda wygodna, funkcjonalnie równoważna: |
135 | <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - Metoda wygodna, funkcjonalnie równoważna: |
136 | <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - Metoda odczytu sekwencji obiektów ze strumienia parsera. |
137 | ObjectMapper registerModule(Module module)- Metoda rejestracji modułu, który może rozszerzyć funkcjonalność zapewnianą przez ten mapper; na przykład dodając dostawców dla niestandardowych serializatorów i deserializatorów. |
138 | ObjectMapper registerModules(Iterable<Module> modules)- Wygodny sposób rejestrowania określonych modułów w kolejności; funkcjonalnie równoważne z: |
139 | ObjectMapper registerModules(Module... modules)- Wygodny sposób rejestrowania określonych modułów w kolejności; funkcjonalnie równoważne z: |
140 | void registerSubtypes(NamedType... types) - Metoda rejestracji określonej klasy jako podtypu, dzięki czemu rozpoznawanie oparte na nazwie typu może łączyć nadtypy z podtypami (jako alternatywa dla używania adnotacji). |
141 | ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - Metoda ustawiania AnnotationIntrospector używanego przez tę instancję programu odwzorowującego zarówno do serializacji, jak i deserializacji. |
142 | ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - Metoda zmiany instancji AnnotationIntrospector używanych przez tę instancję programu odwzorowującego do serializacji i deserializacji, określając je oddzielnie, aby można było użyć różnych introspekcji dla różnych aspektów. |
143 | ObjectMapper setBase64Variant(Base64Variant v) - Metoda, która skonfiguruje domyślną wersję Base64Variant używaną przez serializatory i deserializatory bajtu []. |
144 | ObjectMapper setConfig(DeserializationConfig config) - Metoda, która umożliwia przesłanianie podstawowego obiektu DeserializationConfig. |
145 | ObjectMapper setConfig(SerializationConfig config) - Metoda, która umożliwia zastąpienie podstawowego obiektu SerializationConfig, który zawiera ustawienia konfiguracji specyficzne dla serializacji. |
146 | ObjectMapper setDateFormat(DateFormat dateFormat) - Metoda konfigurowania domyślnego DateFormat do użycia podczas serializacji wartości czasu jako ciągów i deserializacji z ciągów JSON. |
147 | ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - Metoda określania PrettyPrinter do użycia, gdy włączone jest „domyślne drukowanie ładnie” (przez włączenie SerializationFeature.INDENT_OUTPUT) |
148 | ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - Metoda umożliwiająca automatyczne dołączanie informacji o typie, przy użyciu określonego obiektu obsługi do określania, na które typy ma to wpływ, a także szczegóły dotyczące osadzania informacji. |
149 | ObjectMapper setFilterProvider(FilterProvider filterProvider) - Metoda konfigurowania tego programu odwzorowującego do używania określonego elementu FilterProvider do mapowania identyfikatorów filtru na rzeczywiste wystąpienia filtru. |
150 | Object setHandlerInstantiator(HandlerInstantiator hi) - Metoda konfigurowania HandlerInstantiator do użycia do tworzenia wystąpień programów obsługi (takich jak serializatory, deserializatory, programy rozpoznawania typu i identyfikatora typu), dana klasa. |
151 | ObjectMapper setInjectableValues(InjectableValues injectableValues) - Metoda konfigurowania InjectableValues, która służyła do znajdowania wartości do wstrzyknięcia. |
152 | ObjectMapper setLocale(Locale l) - Metoda nadpisywania domyślnych ustawień regionalnych w celu formatowania. |
153 | void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- wycofane. Od 2.5: zastąpiona płynną formą metody; setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>). |
154 | ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - Metoda, którą można wywołać, aby określić dany mechanizm rozpoznawania nazw w celu zlokalizowania używanych klas mieszanych, przesłaniając bezpośrednio dodane mapowania. |
155 | ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - Metoda używana do definiowania dodanych adnotacji do użycia w celu rozszerzenia adnotacji, które mają klasy przetwarzalne (serializowalne / deserializowalne). |
156 | ObjectMapper setNodeFactory(JsonNodeFactory f) - Metoda określania JsonNodeFactory do użycia do konstruowania węzłów drzewa poziomu głównego (za pomocą metody createObjectNode () |
157 | ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - Metoda ustawiania domyślnej strategii włączania właściwości POJO do serializacji. |
158 | ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - Metoda ustawiania strategii nazewnictwa właściwości niestandardowych do użycia. |
159 | ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - Metoda wygodna, odpowiednik wywołania: |
160 | ObjectMapper setSerializerFactory(SerializerFactory f) - Metoda ustawiania określonych SerializerFactory do użycia do konstruowania serializatorów (bean). |
161 | ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - Metoda ustawiania „blueprint” instancji SerializerProvider jako podstawy dla rzeczywistych instancji dostawcy do obsługi buforowania instancji JsonSerializer. |
162 | ObjectMapper setSubtypeResolver(SubtypeResolver str) - Metoda ustawiania niestandardowego mechanizmu rozpoznawania podtypów do użycia. |
163 | ObjectMapper setTimeZone(TimeZone tz) - Metoda nadpisywania domyślnej strefy czasowej używanej do formatowania. |
164 | ObjectMapper setTypeFactory(TypeFactory f) - Metoda, której można użyć do zastąpienia wystąpienia TypeFactory używanego przez ten program odwzorowujący. |
165 | ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - Wygodna metoda, która umożliwia zmianę konfiguracji dla bazowych VisibilityCheckers, aby zmienić szczegóły tego, jakie rodzaje właściwości są automatycznie wykrywane. |
166 | ObjectMapper setVisibility(VisibilityChecker<?> vc) - Metoda ustawiania aktualnie skonfigurowanego VisibilityChecker, obiektu używanego do określenia, czy dany element właściwości (metoda, pole, konstruktor) może być automatycznie wykrywany, czy nie. |
167 | void setVisibilityChecker(VisibilityChecker<?> vc)- wycofane. Od wersji 2.6 zamiast tego użyj setVisibility (VisibilityChecker). |
168 | JsonParser treeAsTokens(TreeNode n) - Metoda konstruowania JsonParser z reprezentacji drzewa JSON. |
169 | <T> T treeToValue(TreeNode n, Class<T> valueType) - Wygodna metoda konwersji, która będzie wiązać dane zawarte w drzewie JSON w określony typ wartości (zwykle bean). |
170 | <T extends JsonNode> T valueToTree(Object fromValue)- Odwrotność treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); dana wartość (zwykle bean), skonstruuje równoważną reprezentację JSON Tree. |
171 | Version version() - Metoda, która zwróci informacje o wersji zapisane w pliku jar zawierającym tę klasę i odczytane z niej. |
172 | ObjectWriter writer() - Wygodna metoda tworzenia ObjectWriter z domyślnymi ustawieniami. |
173 | ObjectWriter writer(Base64Variant defaultBase64) - Fabryczna metoda konstruowania ObjectWriter, która będzie używać określonego wariantu kodowania Base64 dla danych binarnych zakodowanych w formacie Base64. |
174 | ObjectWriter writer(CharacterEscapes escapes) - |
175 | ObjectWriter writer(ContextAttributes attrs) - Fabryczna metoda konstruowania ObjectWriter, która będzie używać określonych atrybutów domyślnych. |
176 | ObjectWriter writer(DateFormat df)- Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego DateFormat; lub, jeśli przekazano wartość null, przy użyciu znacznika czasu (liczba 64-bitowa. |
177 | ObjectWriter writer(FilterProvider filterProvider) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego dostawcy filtru. |
178 | ObjectWriter writer(FormatSchema schema) - Fabryczna metoda konstruowania ObjectWriter, która przekaże określony obiekt schematu do JsonGenerator używanego do pisania treści. |
179 | ObjectWriter writer(PrettyPrinter pp) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonej ładnej drukarki do wcięcia (lub jeśli null, nie będzie ładnej drukarki) |
180 | ObjectWriter writer(SerializationFeature feature) - Fabryczna metoda konstruowania ObjectWriter z włączoną określoną funkcją (w porównaniu z ustawieniami, które ma ta instancja mapowania). |
181 | ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - Fabryczna metoda konstruowania ObjectWriter z włączonymi określonymi funkcjami (w porównaniu z ustawieniami, które ma ta instancja mapowania). |
182 | ObjectWriter writerFor(Class<?> rootType) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego typu głównego zamiast rzeczywistego typu wartości w czasie wykonywania. |
183 | ObjectWriter writerFor(JavaType rootType) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego typu głównego zamiast rzeczywistego typu wartości w czasie wykonywania. |
184 | ObjectWriter writerFor(TypeReference<?> rootType) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego typu głównego zamiast rzeczywistego typu wartości w czasie wykonywania. |
185 | ObjectWriter writerWithDefaultPrettyPrinter() - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu domyślnej drukarki Pretty do wcięć. |
186 | ObjectWriter writerWithType(Class<?> rootType)- wycofane. Od wersji 2.5 zamiast tego użyj writerFor (Class). |
187 | ObjectWriter writerWithType(JavaType rootType)- wycofane. Od wersji 2.5 zamiast tego użyj writerFor (JavaType). |
188 | ObjectWriter writerWithType(TypeReference<?> rootType)- wycofane. Od wersji 2.5 zamiast tego użyj writerFor (TypeReference). |
189 | ObjectWriter writerWithView(Class<?> serializationView) - Fabryczna metoda konstruowania ObjectWriter, która będzie serializować obiekty przy użyciu określonego widoku JSON (filtr). |
190 | void writeTree(JsonGenerator jgen, JsonNode rootNode) - Metoda serializacji danego drzewa JSON przy użyciu dostarczonego generatora. |
191 | void writeTree(JsonGenerator jgen, TreeNode rootNode) |
192 | void writeValue(DataOutput out, Object value) |
193 | void writeValue(File resultFile, Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako danych wyjściowych JSON, zapisanych w podanym pliku. |
194 | void writeValue(JsonGenerator g, Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako danych wyjściowych JSON, przy użyciu dostarczonego JsonGenerator. |
195 | void writeValue(OutputStream out, Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako danych wyjściowych JSON, przy użyciu dostarczonego strumienia wyjściowego (przy użyciu kodowania JsonEncoding.UTF8). |
196 | void writeValue(Writer w, Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako danych wyjściowych JSON przy użyciu dostarczonego narzędzia Writer. |
197 | byte[] writeValueAsBytes(Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako tablicy bajtów. |
198 | String writeValueAsString(Object value) - Metoda, której można użyć do serializacji dowolnej wartości Java jako ciągu. |
Dziedziczone metody
Ta klasa dziedziczy metody z następujących klas:
java.lang.Object
Przykład ObjectMapper
Utwórz następujący program java, używając dowolnego wybranego edytora, powiedzmy C:/> Jackson_WORKSPACE
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Student [ name: Mahesh, age: 21 ]
{
"name" : "Mahesh",
"age" : 21
}
Serializacja obiektów
zserializujmy obiekt java do pliku json, a następnie przeczytajmy ten plik json, aby odzyskać obiekt. W tym przykładzie utworzyliśmy klasę Student. Utworzymy plik student.json, który będzie zawierał reprezentację json obiektu Student.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Student [ name: Mahesh, age: 10 ]
Wiązanie danych
Interfejs API wiązania danych służy do konwersji JSON do iz POJO (zwykły stary obiekt Java) za pomocą metody dostępu do właściwości lub adnotacji. Jest dwojakiego rodzaju.
Simple Data Binding - Konwertuje JSON do iz Java Maps, list, ciągów znaków, liczb, wartości logicznych i obiektów zerowych.
Full Data Binding - Konwertuje JSON na iz dowolnego typu JAVA.
ObjectMapper odczytuje / zapisuje JSON dla obu typów powiązań danych. Data Binding jest najwygodniejszym sposobem i jest analogiem do JAXB parer dla XML.
Proste wiązanie danych
Proste powiązanie danych odnosi się do mapowania typów danych JSON na JAVA Core. Poniższa tabela ilustruje związek między typami JSON a typami Java.
Sr. No. | Typ JSON | Typ Java |
---|---|---|
1 | obiekt | LinkedHashMap <String, Object> |
2 | szyk | ArrayList <Object> |
3 | strunowy | Strunowy |
4 | pełny numer | Integer, Long lub BigInteger |
5 | liczba ułamkowa | Double / BigDecimal |
6 | prawda | fałszywy | Boolean |
7 | zero | zero |
Zobaczmy, jak działa proste wiązanie danych. Tutaj zmapujemy podstawowe typy JAVA bezpośrednio na JSON i odwrotnie.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
{name=Mahesh, age=10}
Mahesh Kumar
false
[1, 2, 3]
Pełne wiązanie danych
Pełne powiązanie danych odnosi się do mapowania JSON na dowolny obiekt JAVA.
//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);
Zobaczmy, jak działa proste wiązanie danych. Tutaj zmapujemy obiekt JAVA bezpośrednio na JSON i odwrotnie.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Student [ name: Mahesh, age: 10 ]
Powiązanie danych z rodzajami
W prostym powiązaniu danych użyliśmy klasy Map, która używa String jako klucza i Object jako obiektu wartości. Zamiast tego możemy mieć konkretny obiekt Java i typ rzutowania go do użycia w wiązaniu JSON.
Rozważmy następujący przykład z klasą UserData, klasą do przechowywania danych użytkownika.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Student [ name: Mahesh, age: 10 ]
Mahesh Kumar
false
[1, 2, 3]
Model drzewa
Model drzewa przygotowuje reprezentację drzewa dokumentu JSON w pamięci. Drzewo kompilacji ObjectMapper węzłów JsonNode. Jest to najbardziej elastyczne podejście. Jest analogiem do parsera DOM dla XML.
Utwórz drzewo z formatu JSON
ObjectMapper udostępnia wskaźnik do węzła głównego drzewa po odczytaniu JSON. Węzeł główny może służyć do przechodzenia przez całe drzewo. Rozważ poniższy fragment kodu, aby uzyskać węzeł główny podanego ciągu JSON.
//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);
Model drzewa przechodzenia
Pobierz każdy węzeł przy użyciu ścieżki względnej do węzła głównego podczas przeglądania drzewa i przetwarzania danych. Rozważmy następujący fragment kodu przechodzący przez drzewo pod warunkiem, że jest to węzeł główny.
JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.textValue());
JsonNode marksNode = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode.elements();
Przykład
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]
Drzewo do JSON
W tym przykładzie utworzyliśmy drzewo przy użyciu JsonNode i zapisaliśmy je do pliku json i ponownie odczytaliśmy.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]
Drzewo do obiektów Java
W tym przykładzie utworzyliśmy drzewo przy użyciu JsonNode i zapisaliśmy je do pliku json i ponownie odczytaliśmy drzewo, a następnie przekonwertowaliśmy je jako obiekt studenta.
Utwórz plik klasy java o nazwie JacksonTester w C:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]
Streaming API
Streaming API odczytuje i zapisuje zawartość JSON jako dyskretne zdarzenia. JsonParser odczytuje dane, podczas gdy JsonGenerator zapisuje dane. Jest to najpotężniejsze podejście spośród trzech, ma najniższe narzuty i najszybsze w operacjach odczytu / zapisu. Jest to parser Analogus do Stax dla XML.
W tym artykule przedstawimy wykorzystanie interfejsów API przesyłania strumieniowego Jacksona do odczytu i zapisu danych JSON. Streaming API działa z koncepcją tokena, a każdy szczegół Json wymaga ostrożności. Poniżej znajdują się dwie klasy, których użyjemy w przykładach:
JsonGenerator - Napisz do ciągu JSON.
JsonParser - Przeanalizuj ciąg JSON.
Pisanie JSON przy użyciu JsonGenerator
Korzystanie z JsonGenerator jest dość proste. Najpierw utwórz JsonGenerator przy użyciu metody JsonFactory.createJsonGenerator () i użyj jej metod write *** (), aby zapisać każdą wartość json.
JsonFactory jsonFactory = new JsonFactory();
JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
"student.json"), JsonEncoding.UTF8);
// {
jsonGenerator.writeStartObject();
// "name" : "Mahesh Kumar"
jsonGenerator.writeStringField("name", "Mahesh Kumar");
Zobaczmy, jak działa JsonGenerator. Utwórz plik klasy java o nazwie JacksonTester wC:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Mahesh Kumar
21
false
[100, 90, 85]
Czytanie JSON przy użyciu JsonParser
Korzystanie z JsonParser jest znowu całkiem proste. Najpierw utwórz JsonParser przy użyciu metody JsonFactory.createJsonParser () i użyj jej metod nextToken (), aby odczytać każdy ciąg json jako token. Sprawdź każdy token i odpowiednio przeprowadź proces
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());
}
}
Zobaczmy, jak działa JsonParser. Utwórz plik klasy java o nazwie JacksonTester wC:\>Jackson_WORKSPACE.
Plik: 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
Skompiluj klasy przy użyciu javac kompilator w następujący sposób:
C:\Jackson_WORKSPACE>javac JacksonTester.java
Teraz uruchom test jacksonTester, aby zobaczyć wynik:
C:\Jackson_WORKSPACE>java JacksonTester
Sprawdź dane wyjściowe
Mahesh Kumar
21
false
[100, 90, 85]
Klasa JsonGenerator
Wprowadzenie
JsonParser to klasa bazowa do definiowania publicznego interfejsu API do odczytywania zawartości Json. Instancje są tworzone przy użyciu metod fabrycznych wystąpienia JsonFactory.
Deklaracja klasy
Poniżej znajduje się deklaracja dla org.codehaus.jackson.JsonParser klasa:
public abstract class JsonParser
extends Object
implements Closeable, Versioned
Klasy zagnieżdżone
SN | Klasa i opis |
---|---|
1 | static class JsonParser.Feature Wyliczenie, które definiuje wszystkie przełączalne funkcje dla parserów. |
2 | static class JsonParser.NumberType Wyliczenie możliwych „rodzimych” (optymalnych) typów, których można użyć dla liczb. |
Pola
protected PrettyPrinter _cfgPrettyPrinter - Obiekt obsługujący ładne drukowanie (zwykle dodatkowe spacje, aby wyniki były bardziej czytelne dla człowieka) podczas drukowania.
protected JsonToken _currToken - Ostatni token pobrany przez nextToken (), jeśli istnieje.
protected int _features - Flaga bitowa złożona z bitów wskazujących, które JsonParser.Features są włączone.
protected JsonToken _lastClearedToken - Ostatni wyczyszczony token, jeśli istnieje: to znaczy wartość, która obowiązywała, gdy wywołano clearCurrentToken ().
Konstruktorzy
SN | Konstruktor i opis |
---|---|
1 | protected JsonParser() Konstruktor domyślny |
2 | protected JsonParser(int features) |
Metody klasowe
SN | Metoda i opis |
---|---|
1 | protected void _reportError(String msg) - Metoda pomocnicza używana do konstruowania i zgłaszania wyjątku JsonGenerationException z podanym komunikatem bazowym. |
2 | protected void _reportUnsupportedOperation() |
3 | protected void _throwInternal() |
4 | protected void _writeSimpleObject(Object value)- Metoda pomocnicza, aby spróbować wywołać odpowiednią metodę zapisu dla danego nietypowego obiektu. |
5 | boolean canOmitFields() - Metoda introspekcji do wywołania, aby sprawdzić, czy można pominąć zapisywanie pól Object, czy nie. |
6 | boolean canUseSchema(FormatSchema schema) - Metoda, za pomocą której można sprawdzić, czy dany schemat może być używany z tym generatorem (przy użyciu metody setSchema (com.fasterxml.jackson.core.FormatSchema)). |
7 | boolean canWriteBinaryNatively()- Metoda introspekcji, którą można wywołać, aby sprawdzić, czy podstawowy format danych obsługuje „natywne” dane binarne; to znaczy wydajne wyjście zawartości binarnej bez kodowania. |
8 | boolean canWriteObjectId() - Metoda introspekcji, którą można wywołać, aby sprawdzić, czy podstawowy format danych obsługuje natywnie jakiś rodzaj identyfikatorów obiektów (wiele z nich nie obsługuje; na przykład JSON nie). |
9 | boolean canWriteTypeId() - Metoda introspekcji, którą można wywołać, aby sprawdzić, czy podstawowy format danych obsługuje natywnie jakiś rodzaj identyfikatorów typu (wiele z nich nie obsługuje; na przykład JSON nie). |
10 | abstract void close() - Metoda wywoływana w celu zamknięcia tego generatora, aby nie można było napisać więcej treści. |
11 | JsonGenerator configure(JsonGenerator.Feature f, boolean state) - Metoda włączania lub wyłączania określonej funkcji: sprawdź JsonGenerator.Feature, aby uzyskać listę dostępnych funkcji. |
12 | void copyCurrentEvent(JsonParser jp) - Metoda kopiowania zawartości bieżącego zdarzenia, na które wskazuje dana instancja parsera. |
13 | void copyCurrentStructure(JsonParser jp) - Metoda kopiowania treści aktualnego zdarzenia i kolejnych zdarzeń, na które wskazuje dana instancja parsera. |
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) - Metoda włączania określonych funkcji parsera: sprawdź JsonGenerator.Feature, aby uzyskać listę dostępnych funkcji. |
16 | abstract void flush() - Metoda wywoływana w celu opróżnienia zbuforowanej zawartości do bazowego celu (strumień wyjściowy, moduł zapisujący), a także do opróżnienia samego celu. |
17 | CharacterEscapes getCharacterEscapes() - Metoda uzyskiwania dostępu do niestandardowych ucieczek używanych przez fabrykę dla JsonGenerators, które tworzy. |
18 | abstract ObjectCodec getCodec() - Metoda dostępu do obiektu używanego do zapisu obiektu Java jako treści Json (za pomocą metody writeObject (java.lang.Object)). |
19 | abstract int getFeatureMask() - Metoda dostępu zbiorczego do pobierania stanu wszystkich standardowych JsonGenerator.Features. |
20 | int getHighestEscapedChar() - Metoda akcesora do testowania najwyższego znaku bez zmiany znaczenia skonfigurowanego dla tego generatora. |
21 | abstract JsonStreamContext getOutputContext() |
22 | Object getOutputTarget()- Metoda, za pomocą której można uzyskać dostęp do obiektu, który jest używany jako cel dla generowanych danych wyjściowych; zwykle jest to OutputStream lub Writer, w zależności od tego, z jakim generatorem został zbudowany. |
23 | PrettyPrinter getPrettyPrinter()- Accessor do sprawdzania, czy ten generator ma skonfigurowany PrettyPrinter; zwraca, jeśli tak, null, jeśli nie skonfigurowano. |
24 | FormatSchema getSchema() - Metoda dostępu do schematu, której używa ten parser, jeśli istnieje. |
25 | abstract boolean isClosed() - Metoda, którą można wywołać w celu określenia, czy ten generator jest zamknięty, czy nie. |
26 | abstract boolean isEnabled(JsonGenerator.Feature f) - Metoda sprawdzania, czy dana funkcja jest włączona. |
27 | JsonGenerator setCharacterEscapes(CharacterEscapes esc)-Metoda definiowania niestandardowych ucieczek używanych przez fabrykę dla JsonGenerators, które tworzy. |
28 | abstract JsonGenerator setCodec(ObjectCodec oc)- Metoda, którą można wywołać, aby ustawić lub zresetować obiekt w celu zapisania obiektów Java jako JsonContent (przy użyciu metody writeObject (java.lang.Object)). |
29 | abstract JsonGenerator setFeatureMask(int mask)-Bulk set Metoda (ponownego) ustawiania stanów wszystkich standardowych 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) - Metoda ustawiania niestandardowej, ładnej drukarki, która jest zwykle używana do dodawania wcięć w celu poprawy czytelności dla ludzi. |
32 | JsonGenerator setRootValueSeparator(SerializableString sep) - Metoda, która umożliwia nadpisywanie String używanego do oddzielania wartości JSON poziomu głównego (domyślnie jest to pojedynczy znak spacji) |
33 | void setSchema(FormatSchema schema) - Metoda wywołania, aby ten generator używał określonego schematu. |
33 | abstract JsonGenerator useDefaultPrettyPrinter()- Wygodna metoda włączania ładnego drukowania przy użyciu domyślnej ładnej drukarki (DefaultPrettyPrinter). |
34 | abstract Version version()- Accessor do znajdowania wersji pakietu, który dostarczył tę instancję generatora. |
35 | void writeArrayFieldStart(String fieldName)- Wygodna metoda wyprowadzania wpisu pola („element członkowski”) (który będzie zawierał wartość tablicy JSON) i znacznika START_ARRAY. |
36 | abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- Metoda, która wyświetli dany fragment danych binarnych zakodowany w formacie base64, jako pełną wartość typu String (w podwójnych cudzysłowach). |
37 | abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - Metoda podobna do writeBinary (Base64Variant, byte [], int, int), ale gdzie dane wejściowe są dostarczane przez strumień, co pozwala na zapis przyrostowy bez trzymania całego wejścia w pamięci. |
38 | void writeBinary(byte[] data)- Podobny do writeBinary (Base64Variant, byte [], int, int), ale zakłada domyślnie używanie domyślnego wariantu Jacksona Base64 (którym jest Base64Variants.MIME_NO_LINEFEEDS). |
39 | void writeBinary(byte[] data, int offset, int len) - Podobny do writeBinary (Base64Variant, byte [], int, int), ale domyślnie używa domyślnego wariantu Jacksona Base64 (którym jest Base64Variants.MIME_NO_LINEFEEDS). |
40 | int writeBinary(InputStream data, int dataLength) - Podobny do writeBinary (Base64Variant, InputStream, int), ale zakłada, że domyślnie używa domyślnego wariantu Jacksona Base64 (którym jest Base64Variants.MIME_NO_LINEFEEDS). |
41 | void writeBinaryField(String fieldName, byte[] data) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który zawiera określone dane w postaci zakodowanej w formacie base64. |
42 | abstract void writeBoolean(boolean state) - Metoda wyprowadzania literalnej wartości logicznej Json (jeden z ciągów znaków „prawda” i „fałsz”). |
43 | void writeBooleanField(String fieldName, boolean value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma wartość logiczną. |
44 | abstract void writeEndArray() - Metoda pisania znacznika zamykającego wartości tablicy JSON (znak „]”; plus możliwa dekoracja spacji, jeśli włączone jest drukowanie ładnie). |
45 | abstract void writeEndObject() - Metoda pisania znacznika zamykającego wartości obiektu JSON (znak '}'; plus możliwa dekoracja spacji, jeśli włączone jest drukowanie ładnie). |
46 | abstract void writeFieldName(SerializableString name) - Metoda podobna do writeFieldName (String), główna różnica polega na tym, że może działać lepiej, ponieważ niektóre operacje (takie jak cytowanie niektórych znaków lub kodowanie do zewnętrznego kodowania, jeśli jest obsługiwane przez generator) można wykonać tylko raz i ponownie wykorzystać do późniejszych wywołań. |
47 | abstract void writeFieldName(String name) - Metoda zapisywania nazwy pola (ciąg JSON otoczony podwójnymi cudzysłowami: składniowo identyczny z wartością ciągu JSON), prawdopodobnie ozdobiony białymi znakami, jeśli włączone jest drukowanie ładnie. |
48 | abstract void writeNull() - Metoda wyprowadzania wartości null literału Json. |
49 | void writeNullField(String fieldName) - Wygodna metoda wyświetlania wpisu pola („elementu członkowskiego”), który ma wartość literału JSON równą null. |
50 | abstract void writeNumber(BigDecimal dec) - Metoda wyprowadzania wskazuje wartość liczbową JSON. |
51 | abstract void writeNumber(BigInteger v) - Metoda wyprowadzania podanej wartości jako liczby Json. |
52 | abstract void writeNumber(double d) - Metoda wyprowadzania wskazuje wartość liczbową JSON. |
53 | abstract void writeNumber(float f) - Metoda wyprowadzania wskazuje wartość liczbową JSON. |
54 | abstract void writeNumber(int v) - Metoda wyprowadzania podanej wartości jako liczby Json. |
55 | abstract void writeNumber(long v) - Metoda wyprowadzania podanej wartości jako liczby Json. |
56 | void writeNumber(short v) - Metoda wyprowadzania podanej wartości jako liczby Json. |
57 | abstract void writeNumber(String encodedValue) - Metoda zapisu, której można użyć do niestandardowych typów liczbowych, których nie można (łatwo?) Przekonwertować na „standardowe” typy liczbowe języka Java. |
58 | void writeNumberField(String fieldName, BigDecimal value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma określoną wartość liczbową. |
59 | void writeNumberField(String fieldName, double value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma określoną wartość liczbową. |
60 | void writeNumberField(String fieldName, float value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma określoną wartość liczbową. |
61 | void writeNumberField(String fieldName, int value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma określoną wartość liczbową. |
62 | void writeNumberField(String fieldName, long value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma określoną wartość liczbową. |
63 | abstract void writeObject(Object pojo) - Metoda zapisu danego obiektu Java (POJO) jako Json. |
64 | void writeObjectField(String fieldName, Object pojo) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), którego wartością jest zawartość określonego obiektu Java. |
65 | void writeObjectFieldStart(String fieldName) - Wygodna metoda wyprowadzania wpisu pola („element członkowski”) (który będzie zawierał wartość obiektu JSON) i znacznika START_OBJECT. |
66 | void writeObjectId(Object id) - Metoda, którą można wywołać w celu wyprowadzenia tak zwanego natywnego identyfikatora obiektu. |
67 | void writeObjectRef(Object id) - Metoda, którą można wywołać w celu wyprowadzenia odwołań do natywnych identyfikatorów obiektów. |
68 | void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped. |
69 | abstract void writeRaw(char c) - Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji (w tym bez zmiany znaczenia i bez dodawania separatorów, nawet jeśli kontekst [tablica, obiekt] wymagałby tego w innym przypadku). |
70 | abstract void writeRaw(char[] text, int offset, int len) - Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji (w tym bez zmiany znaczenia i bez dodawania separatorów, nawet jeśli kontekst [tablica, obiekt] wymagałby tego w innym przypadku). |
71 | void writeRaw(SerializableString raw) - Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji (w tym bez zmiany znaczenia i bez dodawania separatorów, nawet jeśli kontekst [tablica, obiekt] wymagałby tego w innym przypadku). |
72 | abstract void writeRaw(String text) - Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji (w tym bez zmiany znaczenia i bez dodawania separatorów, nawet jeśli kontekst [tablica, obiekt] wymagałby tego w innym przypadku). |
73 | abstract void writeRaw(String text, int offset, int len) - Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji (w tym bez zmiany znaczenia i bez dodawania separatorów, nawet jeśli kontekst [tablica, obiekt] wymagałby tego w innym przypadku). |
74 | abstract void writeRawUTF8String(byte[] text, int offset, int length) - Metoda podobna do writeString (String), ale jako dane wejściowe przyjmuje łańcuch znaków zakodowany w UTF-8, który ma zostać wyprowadzony w takiej postaci, w jakiej jest, bez dodatkowego znaku ucieczki (którego typ zależy od formatu danych; ukośniki odwrotne dla JSON). |
75 | abstract void writeRawValue(char[] text, int offset, int len) |
76 | abstract void writeRawValue(String text)- Metoda, która zmusi generator do dosłownego kopiowania tekstu wejściowego bez żadnych modyfikacji, ale przy założeniu, że musi stanowić pojedynczą legalną wartość JSON (liczba, ciąg, wartość logiczna, null, tablica lub lista). |
77 | abstract void writeRawValue(String text, int offset, int len) |
78 | abstract void writeStartArray()- Metoda zapisywania początkowego znacznika wartości tablicy JSON (znak „[”; plus możliwa dekoracja spacji, jeśli włączone jest drukowanie ładnie). |
79 | abstract void writeStartObject() - Metoda pisania znacznika początkowego wartości obiektu JSON (znak „{”; plus możliwa dekoracja spacji, jeśli włączone jest drukowanie ładnie). |
80 | abstract void writeString(char[] text, int offset, int len) - Metoda wyprowadzania wartości typu String. |
81 | abstract void writeString(SerializableString text) - Metoda podobna do writeString (String), ale pobiera SerializableString, co może uczynić to potencjalnie bardziej wydajnym do wywołania, ponieważ generator może być w stanie ponownie wykorzystać cytowaną i / lub zakodowaną reprezentację. |
82 | abstract void writeString(String text) - Metoda wyprowadzania wartości typu String. |
83 | void writeStringField(String fieldName, String value) - Wygodna metoda wyprowadzania wpisu pola („elementu członkowskiego”), który ma wartość typu String. |
84 | abstract void writeTree(TreeNode rootNode) - Metoda zapisu podanego drzewa JSON (wyrażonego jako drzewo, w którym podany JsonNode jest korzeniem) za pomocą tego generatora. |
85 | void writeTypeId(Object id) - Metoda, którą można wywołać w celu wyprowadzenia tak zwanego natywnego identyfikatora typu. |
86 | abstract void writeUTF8String(byte[] text, int offset, int length) - Metoda podobna do writeString (String), ale przyjmuje jako dane wejściowe ciąg znaków zakodowany w UTF-8, który nie został pominięty przy użyciu dowolnego formatu danych schematu ucieczki (dla JSON jest to znak ucieczki odwrotnym ukośnikiem dla znaków sterujących i cudzysłowów; dla innych formatuje coś innego). |
Dziedziczone metody
Ta klasa dziedziczy metody z następujących klas:
java.lang.Object
JsonParser Class
Wprowadzenie
JsonParser to klasa bazowa do definiowania publicznego interfejsu API do odczytywania zawartości Json. Instancje są tworzone przy użyciu metod fabrycznych wystąpienia JsonFactory.
Deklaracja klasy
Poniżej znajduje się deklaracja dla com.fasterxml.jackson.core.JsonParser klasa:
public abstract class JsonParser
extends Object
implements Closeable, Versioned
Klasy zagnieżdżone
SN | Klasa i opis |
---|---|
1 | static class JsonParser.Feature Wyliczenie, które definiuje wszystkie przełączalne funkcje dla parserów. |
2 | static class JsonParser.NumberType Wyliczenie możliwych „rodzimych” (optymalnych) typów, których można użyć dla liczb. |
Pola
protected int _features - Flaga bitowa złożona z bitów wskazujących, które JsonParser.Features są włączone.
Konstruktorzy
SN | Konstruktor i opis |
---|---|
1 | protected JsonParser () Domyślny konstruktor |
2 | protected JsonParser (funkcje int) |
Metody klasowe
SN | Metoda i opis |
---|---|
1 | protected JsonParseException _constructError(String msg) - Metoda pomocnicza do konstruowania JsonParseExceptions na podstawie bieżącego stanu parsera. |
2 | protected void _reportUnsupportedOperation() - Metoda pomocnicza do wywoływania operacji, które nie są obsługiwane przez implementację parsera. |
3 | boolean canReadObjectId() - Metoda introspekcji, którą można wywołać, aby sprawdzić, czy podstawowy format danych obsługuje natywnie jakiś rodzaj identyfikatorów obiektów (wiele z nich nie obsługuje; na przykład JSON nie). |
4 | boolean canReadTypeId() - Metoda introspekcji, którą można wywołać, aby sprawdzić, czy podstawowy format danych obsługuje natywnie jakiś rodzaj identyfikatorów typu (wiele z nich nie obsługuje; na przykład JSON nie). |
5 | boolean canUseSchema(FormatSchema schema) - Metoda, której można użyć do sprawdzenia, czy dany schemat może być używany z tym parserem (przy użyciu setSchema (com.fasterxml.jackson.core.FormatSchema)). |
6 | abstract void clearCurrentToken() - Metoda wywoływana w celu „skonsumowania” bieżącego tokenu poprzez skuteczne usunięcie go, dzięki czemu funkcja hasCurrentToken () zwraca wartość false, a getCurrentToken () null). |
7 | abstract void close()- zamyka parser, aby nie można było uzyskać dalszej iteracji lub dostępu do danych; zamknie również bazowe źródło wejściowe, jeśli parser jest właścicielem źródła wejściowego lub funkcja JsonParser.Feature.AUTO_CLOSE_SOURCE jest włączona. |
8 | JsonParser configure(JsonParser.Feature f, boolean state) - Metoda włączania lub wyłączania określonej funkcji (sprawdź listę funkcji JsonParser.Feature) |
9 | JsonParser disable(JsonParser.Feature f) - Metoda wyłączania określonej funkcji (sprawdź listę funkcji JsonParser.Feature) |
10 | JsonParser enable(JsonParser.Feature f) - Metoda włączania określonej funkcji parsera (sprawdź listę funkcji JsonParser.Feature) |
11 | abstract BigInteger getBigIntegerValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_INT i nie może być używany jako długi prymityw Java ze względu na jego wielkość. |
12 | byte[] getBinaryValue() - Wygodna alternatywa dla getBinaryValue (Base64Variant), która domyślnie używa Base64Variants.getDefaultVariant () jako domyślnego kodowania. |
13 | abstract byte[] getBinaryValue(Base64Variant b64variant) - Metoda, której można użyć do odczytu (i wykorzystania - wyniki mogą nie być dostępne przy użyciu innych metod po wywołaniu) danych binarnych zakodowanych w base64 zawartych w bieżącej tekstowej wartości JSON. |
14 | boolean getBooleanValue() - Wygodny akcesor, który można wywołać, gdy bieżący token to JsonToken.VALUE_TRUE lub JsonToken.VALUE_FALSE. |
15 | byte getByteValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_INT i może być wyrażony jako wartość typu pierwotnego bajtu Java. |
16 | abstract ObjectCodec getCodec() - Accessor dla ObjectCodec skojarzony z tym parserem, jeśli istnieje. |
17 | abstract JsonLocation getCurrentLocation()- Metoda zwracająca lokalizację ostatnio przetworzonego znaku; zwykle do celów raportowania błędów. |
18 | abstract String getCurrentName()- Metoda, którą można wywołać, aby uzyskać nazwę powiązaną z bieżącym tokenem: dla JsonToken.FIELD_NAMEs będzie taka sama, jak zwraca getText (); dla wartości pól będzie to poprzedzająca nazwa pola; a dla innych (wartości tablicowe, wartości na poziomie głównym) null. |
19 | abstract JsonToken getCurrentToken()- Accessor, aby znaleźć, na który parser tokenów aktualnie wskazuje, jeśli w ogóle; Jeśli nie, zostanie zwrócona wartość null. |
20 | abstract int getCurrentTokenId() - Metoda podobna do getCurrentToken (), ale zwracająca int zamiast JsonToken (wartość wyliczenia). |
21 | abstract BigDecimal getDecimalValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_FLOAT lub JsonToken.VALUE_NUMBER_INT. |
22 | abstract double getDoubleValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_FLOAT i może być wyrażony jako podwójny typ prymitywny Java. |
23 | abstract Object getEmbeddedObject() - Akcesor, który można wywołać, jeśli (i tylko wtedy) bieżący token to JsonToken.VALUE_EMBEDDED_OBJECT. |
24 | int getFeatureMask() - Metoda dostępu zbiorczego do uzyskiwania stanu wszystkich standardowych JsonParser.Features. |
25 | abstract float getFloatValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_FLOAT i może być wyrażony jako typ pierwotny typu float Java. |
26 | Object getInputSource()- Metoda, której można użyć do uzyskania dostępu do obiektu używanego w celu uzyskania dostępu do analizowanych danych wejściowych; zwykle jest to InputStream lub Reader, w zależności od tego, z jakim parserem został zbudowany. |
27 | abstract int getIntValue() - Dostęp numeryczny, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_INT i można go wyrazić jako wartość typu pierwotnego int Java. |
28 | abstract JsonToken getLastClearedToken() - Metoda, którą można wywołać, aby pobrać ostatni token, który został wyczyszczony za pomocą clearCurrentToken (). |
29 | abstract long getLongValue() - Numeryczny akcesor, który można wywołać, gdy bieżący token jest typu JsonToken.VALUE_NUMBER_INT i może być wyrażony jako długi prymityw Java. |
30 | abstract JsonParser.NumberType getNumberType()- Jeśli bieżący token jest typu JsonToken.VALUE_NUMBER_INT lub JsonToken.VALUE_NUMBER_FLOAT, zwraca jedną ze stałych JsonParser.NumberType; w przeciwnym razie zwraca null. |
31 | abstract Number getNumberValue() - Ogólna metoda akcesora wartości liczbowych, która będzie działać dla wszystkich rodzajów wartości liczbowych. |
32 | Object getObjectId() - Metoda, którą można wywołać, aby sprawdzić, czy bieżący token (właśnie odczytany) ma powiązany identyfikator obiektu, a jeśli tak, zwróć go. |
33 | abstract JsonStreamContext getParsingContext() - Metoda, której można użyć do uzyskania dostępu do bieżącego czytnika kontekstu analizowania, jest dostępna. |
34 | FormatSchema getSchema() - Method for accessing Schema that this parser uses, if any. |
35 | short getShortValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java short primitive type. |
36 | abstract String getText() - Method for accessing textual representation of the current token; if no current token (before first call to nextToken(), or after encountering end-of-input), returns null. |
37 | abstract char[] getTextCharacters() - Method similar to getText(), but that will return underlying (unmodifiable) character array that contains textual value, instead of constructing a String object to contain this information. |
38 | abstract int getTextLength() - Accessor used with getTextCharacters(), to know length of String stored in returned buffer. |
39 | abstract int getTextOffset() - Accessor used with getTextCharacters(), to know offset of the first text content character within buffer. |
40 | abstract JsonLocation getTokenLocation() - Method that return the starting location of the current token; that is, position of the first character from input that starts the current token. |
41 | Object getTypeId() - Method that can be called to check whether current token (one that was just read) has an associated type id, and if so, return it. |
42 | boolean getValueAsBoolean() - Method that will try to convert value of current token to a boolean. |
43 | boolean getValueAsBoolean(boolean defaultValue) - Method that will try to convert value of current token to a boolean. |
44 | double getValueAsDouble() - Method that will try to convert value of current token to a Java double. |
45 | double getValueAsDouble(double defaultValue) - Method that will try to convert value of current token to a Java double. |
46 | int getValueAsInt() - Method that will try to convert value of current token to a int. |
47 | int getValueAsInt(int defaultValue) - Method that will try to convert value of current token to a int. |
48 | long getValueAsLong() - Method that will try to convert value of current token to a long. |
49 | long getValueAsLong(long defaultValue) - Method that will try to convert value of current token to a long. |
50 | String getValueAsString() - Method that will try to convert value of current token to a String. |
51 | abstract String getValueAsString(String defaultValue) - Method that will try to convert value of current token to a String. |
52 | abstract boolean hasCurrentToken() - Method for checking whether parser currently points to a token (and data for that token is available). |
53 | abstract boolean hasTextCharacters() - Method that can be used to determine whether calling of getTextCharacters() would be the most efficient way to access textual content for the event parser currently points to. |
54 | abstract boolean isClosed() - Method that can be called to determine whether this parser is closed or not. |
55 | boolean isEnabled(JsonParser.Feature f) - Method for checking whether specified JsonParser.Feature is enabled. |
56 | boolean isExpectedStartArrayToken() - Specialized accessor that can be used to verify that the current token indicates start array (usually meaning that current token is JsonToken.START_ARRAY) when start array is expected. |
57 | Boolean nextBooleanValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_TRUE or JsonToken.VALUE_FALSE returns matching Boolean value; otherwise return null. |
58 | boolean nextFieldName(SerializableString str) - Method that fetches next token (as if calling nextToken()) and verifies whether it is JsonToken.FIELD_NAME with specified name and returns result of that comparison. |
59 | int nextIntValue(int defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 32-bit int value; otherwise returns specified default value It is functionally equivalent to: |
60 | long nextLongValue(long defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 64-bit long value; otherwise returns specified default value It is functionally equivalent to: |
61 | String nextTextValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_STRING returns contained String value; otherwise returns null. |
62 | abstract JsonToken nextToken() - Main iteration method, which will advance stream enough to determine type of the next token, if any. |
63 | abstract JsonToken nextValue() - Iteration method that will advance stream enough to determine type of the next token that is a value type (including JSON Array and Object start/end markers). |
64 | abstract void overrideCurrentName(String name) - Method that can be used to change what is considered to be the current (field) name. |
65 | int readBinaryValue(Base64Variant b64variant, OutputStream out) - Similar to readBinaryValue(OutputStream) but allows explicitly specifying base64 variant to use. |
66 | int readBinaryValue(OutputStream out) - Method that can be used as an alternative to getBigIntegerValue(), especially when value can be large. |
67 | <T> T readValueAs(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). |
68 | <T> T readValueAs(TypeReference<?> valueTypeRef)- Method to deserialize JSON content into a Java type, reference to which is passed as argument. |
69 | <T extends TreeNode> T readValueAsTree() - Method to deserialize JSON content into equivalent "tree model", represented by root TreeNode of resulting model. |
70 | <T> Iterator<T> readValuesAs(Class<T> valueType) - Method for reading sequence of Objects from parser stream, all with same specified value type. |
71 | <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef)- Method for reading sequence of Objects from parser stream, all with same specified value type. |
72 | int releaseBuffered(OutputStream out) - Method that can be called to push back any content that has been read but not consumed by the parser. |
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() - Method that can be called to determine if a custom ObjectCodec is needed for binding data parsed using JsonParser constructed by this factory (which typically also implies the same for serialization with JsonGenerator). |
75 | abstract void setCodec(ObjectCodec c) - Setter that allows defining ObjectCodec associated with this parser, if any. |
76 | JsonParser setFeatureMask(int mask) - Bulk set method for (re)settting states of all standard JsonParser.Features |
77 | void setSchema(FormatSchema schema) - Method to call to make this parser use specified schema. |
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 for getting version of the core package, given a parser instance. |
Methods inherited
This class inherits methods from the following classes:
java.lang.Object