Package org.apache.felix.utils.json
Class JSONParser
- java.lang.Object
-
- org.apache.felix.utils.json.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.
- Object names are represented as a
-
-
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)
-
-
-
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
-
-