public final class Json
extends java.lang.Object
Für jedes JSON-Objekt, welches deserialisiert werden soll, muss ein Interface angelegt werden, das Getter für die benötigten JSON-Keys enthält.
Dieses Interface wird readObject(Class, JsonReader) als erstem Parameter übergeben.
Alternativ kann statt einem Interface ein beliebiger anderer einfacher Datentyp (s.u.) übergeben zu werden um beispielsweise eine Zahl, ein
Wahrheitswert oder ein String zu deserialisieren. Mit der Übergabe von Object.getClass() kann ein allgemeines JSON-Objekt
deserialisiert werden, bei dem die einzelnen Schlüsselpaare wie bei einer Map abgefragt werden können.
Wird ein Interface verwendet, kann jeder Getter des Interfaces mit JsonKey annotiert werden um den Namen des
Keys der Methode zuzuordnen. Fehlt die Annotation wird der Key automatisch gebildet, indem ein "get" oder "is" am Anfang weggelassen wird und der
erste Buchstabe in einen Kleinbuchstaben konvertiert wird. "String getFirstName()" wird beispielsweise zu "firstName".
Optional kann jedem Getter mit JsonDefault ein Default-Wert als JSON-String übergeben werden, der verwendet
wird, wenn der entsprechende Key fehlt. Ist für eine Methode kein Default-Wert vorgegeben und fehlt der entsprechende Key, dann wird beim
Deserialisieren ein Fehler ausgelöst.
Unterstützte Datentypen: Boolean, JsonObject, Interfaces (s.o.), Iterable, Map, Byte, Short, Integer, Long, Float, Double, BigInteger, BigDecimal sowie alle primitiven Datentypen außer char.
| Modifier and Type | Class and Description |
|---|---|
static class |
Json.Builder |
| Modifier and Type | Method and Description |
|---|---|
<T> T |
asJson(java.lang.Class<T> cls,
java.lang.Object value) |
protected java.lang.String |
asString(java.lang.String s) |
static Json |
getInstance() |
boolean |
getStrictMath()
Gibt
true zurück, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist. |
JsonObject |
newObject() |
JsonObject |
newObject(java.util.Map<java.lang.String,?> data) |
<T> java.util.List<T> |
readArray(java.lang.Class<T> cls,
java.lang.CharSequence charSequence) |
<T> java.util.List<T> |
readArray(java.lang.Class<T> cls,
JsonReader jsonReader) |
<T> java.util.List<T> |
readArray(java.lang.Class<T> cls,
java.io.Reader reader) |
java.lang.Object |
readObject(java.lang.CharSequence charSequence) |
<T> T |
readObject(java.lang.Class<T> cls,
java.lang.CharSequence charSequence) |
<T> T |
readObject(java.lang.Class<T> cls,
JsonReader jsonReader) |
<T> T |
readObject(java.lang.Class<T> cls,
java.io.Reader reader) |
java.lang.Object |
readObject(JsonReader jsonReader) |
java.lang.Object |
readObject(java.io.Reader reader) |
java.lang.String |
writeObject(java.lang.Object object) |
public static Json getInstance()
public JsonObject newObject()
public JsonObject newObject(java.util.Map<java.lang.String,?> data)
@Nullable
public <T> T asJson(java.lang.Class<T> cls,
java.lang.Object value)
throws JsonException
JsonException@Nullable
public java.lang.Object readObject(java.lang.CharSequence charSequence)
throws JsonException
JsonException@Nullable
public java.lang.Object readObject(java.io.Reader reader)
throws JsonException
JsonException@Nullable public java.lang.Object readObject(JsonReader jsonReader) throws JsonException
JsonException@Nullable
public <T> T readObject(java.lang.Class<T> cls,
java.lang.CharSequence charSequence)
throws JsonException
JsonException@Nullable
public <T> T readObject(java.lang.Class<T> cls,
java.io.Reader reader)
throws JsonException
JsonException@Nullable
public <T> T readObject(java.lang.Class<T> cls,
JsonReader jsonReader)
throws JsonException
JsonException@Nullable
public <T> java.util.List<T> readArray(java.lang.Class<T> cls,
java.lang.CharSequence charSequence)
throws JsonException
JsonException@Nullable
public <T> java.util.List<T> readArray(java.lang.Class<T> cls,
java.io.Reader reader)
throws JsonException
JsonExceptionpublic <T> java.util.List<T> readArray(java.lang.Class<T> cls,
JsonReader jsonReader)
throws JsonException
JsonExceptionpublic java.lang.String writeObject(java.lang.Object object)
protected java.lang.String asString(java.lang.String s)
public boolean getStrictMath()
true zurück, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist. Der Standardwert ist true.true, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist, sonst false