java.lang.Object
org.apache.logging.log4j.layout.template.json.util.JsonReader

public final class JsonReader extends Object
A simple JSON parser mapping tokens to basic Java types.

The type mapping is as follows:

  • objects are mapped to LinkedHashMap<String,Object>
  • arrays are mapped to LinkedList
  • strings are mapped to String with proper Unicode and escape character conversion
  • true, false, and null are mapped to their Java counterparts
  • floating point numbers are mapped to BigDecimal
  • integral numbers are mapped to either primitive types (int, long) or BigInteger

This code is heavily influenced by the reader of mjson.

  • Field Details

    • it

      private CharacterIterator it
    • readCharIndex

      private int readCharIndex
    • readChar

      private char readChar
    • readTokenStartIndex

      private int readTokenStartIndex
    • readToken

      private Object readToken
    • buffer

      private final StringBuilder buffer
  • Constructor Details

    • JsonReader

      private JsonReader()
  • Method Details

    • read

      public static Object read(String json)
    • read

      private Object read(CharacterIterator ci)
    • readToken

      private Object readToken()
    • skipWhiteSpace

      private void skipWhiteSpace()
    • readChar

      private char readChar()
    • unreadChar

      private void unreadChar()
    • readString

      private String readString()
    • bufferReadChar

      private void bufferReadChar()
    • bufferChar

      private void bufferChar(char c)
    • readUnicodeChar

      private char readUnicodeChar()
    • readObject

      private Map<String,Object> readObject()
    • readArray

      private List<Object> readArray()
    • readObjectKey

      private String readObjectKey()
    • expectDelimiter

      private void expectDelimiter(JsonReader.Delimiter expectedDelimiter, Object actualToken)
    • readTrue

      private boolean readTrue()
    • readFalse

      private boolean readFalse()
    • readNull

      private Object readNull()
    • readNumber

      private Number readNumber()
    • bufferDigits

      private void bufferDigits()