Class Json
- java.lang.Object
-
- de.kappich.sys.funclib.json.Json
-
public final class Json extends java.lang.Object
Hauptklasse für die Serialisierung und Deserialisierung von JSON-Objekten.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Json.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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()
Gibttrue
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, JsonReader jsonReader)
<T> java.util.List<T>
readArray(java.lang.Class<T> cls, java.io.Reader reader)
<T> java.util.List<T>
readArray(java.lang.Class<T> cls, java.lang.CharSequence charSequence)
java.lang.Object
readObject(JsonReader jsonReader)
java.lang.Object
readObject(java.io.Reader reader)
java.lang.Object
readObject(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)
<T> T
readObject(java.lang.Class<T> cls, java.lang.CharSequence charSequence)
java.lang.String
writeObject(java.lang.Object object)
-
-
-
Method Detail
-
getInstance
public static Json getInstance()
-
newObject
public JsonObject newObject()
-
newObject
public JsonObject newObject(java.util.Map<java.lang.String,?> data)
-
asJson
@Nullable public <T> T asJson(java.lang.Class<T> cls, java.lang.Object value) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public java.lang.Object readObject(java.lang.CharSequence charSequence) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public java.lang.Object readObject(java.io.Reader reader) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public java.lang.Object readObject(JsonReader jsonReader) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public <T> T readObject(java.lang.Class<T> cls, java.lang.CharSequence charSequence) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public <T> T readObject(java.lang.Class<T> cls, java.io.Reader reader) throws JsonException
- Throws:
JsonException
-
readObject
@Nullable public <T> T readObject(java.lang.Class<T> cls, JsonReader jsonReader) throws JsonException
- Throws:
JsonException
-
readArray
@Nullable public <T> java.util.List<T> readArray(java.lang.Class<T> cls, java.lang.CharSequence charSequence) throws JsonException
- Throws:
JsonException
-
readArray
@Nullable public <T> java.util.List<T> readArray(java.lang.Class<T> cls, java.io.Reader reader) throws JsonException
- Throws:
JsonException
-
readArray
public <T> java.util.List<T> readArray(java.lang.Class<T> cls, JsonReader jsonReader) throws JsonException
- Throws:
JsonException
-
writeObject
public java.lang.String writeObject(java.lang.Object object)
-
asString
protected java.lang.String asString(java.lang.String s)
-
getStrictMath
public boolean getStrictMath()
Gibttrue
zurück, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist. Der Standardwert ist true.- Returns:
true
, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist, sonstfalse
-
-