- java.lang.Object
-
- com.google.gson.JsonParser
-
public final class JsonParser extends Object
A parser to parse JSON into a parse tree ofJsonElement
s.The JSON data is parsed in lenient mode.
Here's an example of parsing from a string:
String json = "{\"key\": \"value\"}"; JsonElement jsonElement = JsonParser.parseString(json); JsonObject jsonObject = jsonElement.getAsJsonObject();
It can also parse from a reader:
try (Reader reader = new FileReader("my-data.json", StandardCharsets.UTF_8)) { JsonElement jsonElement = JsonParser.parseReader(reader); JsonObject jsonObject = jsonElement.getAsJsonObject(); }
If you want to parse from a
JsonReader
for more customized parsing requirements, the following example demonstrates how to achieve it:String json = "{\"skipObj\": {\"skipKey\": \"skipValue\"}, \"obj\": {\"key\": \"value\"}}"; try (JsonReader jsonReader = new JsonReader(new StringReader(json))) { jsonReader.beginObject(); while (jsonReader.hasNext()) { String fieldName = jsonReader.nextName(); if (fieldName.equals("skipObj")) { jsonReader.skipValue(); } else { JsonElement jsonElement = JsonParser.parseReader(jsonReader); JsonObject jsonObject = jsonElement.getAsJsonObject(); } } jsonReader.endObject(); }
- Since:
- 1.3
- Author:
- Inderjeet Singh, Joel Leitch
-
-
Constructor Summary
Constructors Constructor Description JsonParser()
Deprecated.No need to instantiate this class, use the static methods instead.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description JsonElement
parse(JsonReader json)
Deprecated.JsonElement
parse(Reader json)
Deprecated.JsonElement
parse(String json)
Deprecated.static JsonElement
parseReader(JsonReader reader)
Returns the next value from the JSON stream as a parse tree.static JsonElement
parseReader(Reader reader)
Parses the complete JSON string provided by the reader into a parse tree.static JsonElement
parseString(String json)
Parses the specified JSON string into a parse tree.
-
-
-
Constructor Detail
-
JsonParser
@Deprecated public JsonParser()
Deprecated.No need to instantiate this class, use the static methods instead.
-
-
Method Detail
-
parseString
public static JsonElement parseString(String json) throws JsonSyntaxException
Parses the specified JSON string into a parse tree. An exception is thrown if the JSON string has multiple top-level JSON elements, or if there is trailing data.The JSON string is parsed in lenient mode.
- Parameters:
json
- JSON text- Returns:
- a parse tree of
JsonElement
s corresponding to the specified JSON - Throws:
JsonParseException
- if the specified text is not valid JSONJsonSyntaxException
- Since:
- 2.8.6
-
parseReader
public static JsonElement parseReader(Reader reader) throws JsonIOException, JsonSyntaxException
Parses the complete JSON string provided by the reader into a parse tree. An exception is thrown if the JSON string has multiple top-level JSON elements, or if there is trailing data.The JSON data is parsed in lenient mode.
- Parameters:
reader
- JSON text- Returns:
- a parse tree of
JsonElement
s corresponding to the specified JSON - Throws:
JsonParseException
- if there is an IOException or if the specified text is not valid JSONJsonIOException
JsonSyntaxException
- Since:
- 2.8.6
-
parseReader
public static JsonElement parseReader(JsonReader reader) throws JsonIOException, JsonSyntaxException
Returns the next value from the JSON stream as a parse tree. Unlike the otherparse
methods, no exception is thrown if the JSON data has multiple top-level JSON elements, or if there is trailing data.If the strictness of the reader is
Strictness.STRICT
, that strictness will be used for parsing. Otherwise the strictness will be temporarily changed toStrictness.LENIENT
and will be restored once this method returns.- Throws:
JsonParseException
- if there is an IOException or if the specified text is not valid JSONJsonIOException
JsonSyntaxException
- Since:
- 2.8.6
-
parse
@Deprecated @InlineMe(replacement="JsonParser.parseString(json)", imports="com.google.gson.JsonParser") public JsonElement parse(String json) throws JsonSyntaxException
Deprecated.- Throws:
JsonSyntaxException
-
parse
@Deprecated @InlineMe(replacement="JsonParser.parseReader(json)", imports="com.google.gson.JsonParser") public JsonElement parse(Reader json) throws JsonIOException, JsonSyntaxException
Deprecated.- Throws:
JsonIOException
JsonSyntaxException
-
parse
@Deprecated @InlineMe(replacement="JsonParser.parseReader(json)", imports="com.google.gson.JsonParser") public JsonElement parse(JsonReader json) throws JsonIOException, JsonSyntaxException
Deprecated.- Throws:
JsonIOException
JsonSyntaxException
-
-