Class Json


  • public 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

      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()
      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, 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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getInstance

        public static Json getInstance()
      • 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 <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
      • 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
      • writeObject

        public java.lang.String writeObject​(java.lang.Object object)
      • asString

        protected java.lang.String asString​(java.lang.String s)
      • getStrictMath

        public boolean getStrictMath()
        Gibt true zurück, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist. Der Standardwert ist true.
        Returns:
        true, wenn verlustbehaftete Umwandlung von Zahlwerten erlaubt ist, sonst false