Class JSONParser


  • public class JSONParser
    extends java.lang.Object
    A very small JSON parser. The JSON input is parsed into an object structure in the following way:
    • Object names are represented as a String.
    • String values are represented as a String.
    • Numeric values without a decimal separator are represented as a Long.
    • Numeric values with a decimal separator are represented as a Double.
    • Boolean values are represented as a Boolean.
    • Nested JSON objects are parsed into a Map<String, Object>.
    • JSON lists are parsed into a List which may contain any of the above values.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  JSONParser.Pair<K,​V>  
      private static class  JSONParser.Scope  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.regex.Pattern KEY_VALUE_PATTERN  
      private java.lang.Object parsed  
    • Constructor Summary

      Constructors 
      Constructor Description
      JSONParser​(java.io.InputStream is)  
      JSONParser​(java.lang.CharSequence json)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Map<java.lang.String,​java.lang.Object> getParsed()  
      java.util.List<java.lang.Object> getParsedList()  
      private static JSONParser.Pair<java.lang.String,​java.lang.Object> parseKeyValue​(java.lang.String jsonKeyValue)  
      private static java.util.List<java.lang.String> parseKeyValueListRaw​(java.lang.String jsonKeyValueList)  
      private static java.util.List<java.lang.String> parseListValuesRaw​(java.lang.String jsonList)  
      private static java.lang.Object parseObject​(java.lang.String jsonObject)  
      private static java.lang.Object parseValue​(java.lang.String jsonValue)  
      private static byte[] readStream​(java.io.InputStream is)
      Read an entire input stream into a byte array.
      private static java.lang.String readStreamAsString​(java.io.InputStream is)  
      private static java.lang.String unEscapeString​(java.lang.String s)  
      • Methods inherited from class java.lang.Object

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

      • KEY_VALUE_PATTERN

        private static final java.util.regex.Pattern KEY_VALUE_PATTERN
      • parsed

        private final java.lang.Object parsed
    • Constructor Detail

      • JSONParser

        public JSONParser​(java.lang.CharSequence json)
      • JSONParser

        public JSONParser​(java.io.InputStream is)
                   throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • getParsed

        public java.util.Map<java.lang.String,​java.lang.Object> getParsed()
      • getParsedList

        public java.util.List<java.lang.Object> getParsedList()
      • parseKeyValue

        private static JSONParser.Pair<java.lang.String,​java.lang.Object> parseKeyValue​(java.lang.String jsonKeyValue)
      • parseValue

        private static java.lang.Object parseValue​(java.lang.String jsonValue)
      • unEscapeString

        private static java.lang.String unEscapeString​(java.lang.String s)
      • parseObject

        private static java.lang.Object parseObject​(java.lang.String jsonObject)
      • parseKeyValueListRaw

        private static java.util.List<java.lang.String> parseKeyValueListRaw​(java.lang.String jsonKeyValueList)
      • parseListValuesRaw

        private static java.util.List<java.lang.String> parseListValuesRaw​(java.lang.String jsonList)
      • readStream

        private static byte[] readStream​(java.io.InputStream is)
                                  throws java.io.IOException
        Read an entire input stream into a byte array.
        Parameters:
        is - The input stream to read.
        Returns:
        The byte array with the contents of the input stream.
        Throws:
        java.io.IOException - if the underlying read operation on the input stream throws an error.
      • readStreamAsString

        private static java.lang.String readStreamAsString​(java.io.InputStream is)
                                                    throws java.io.IOException
        Throws:
        java.io.IOException