- java.lang.Object
-
- com.google.gson.JsonParser
-
public final class JsonParser extends Object
A parser to parse JSON into a parse tree ofJsonElements.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
JsonReaderfor 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 JsonElementparse(JsonReader json)Deprecated.JsonElementparse(Reader json)Deprecated.JsonElementparse(String json)Deprecated.static JsonElementparseReader(JsonReader reader)Returns the next value from the JSON stream as a parse tree.static JsonElementparseReader(Reader reader)Parses the complete JSON string provided by the reader into a parse tree.static JsonElementparseString(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
JsonElements 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
JsonElements corresponding to the specified JSON - Throws:
JsonParseException- if there is an IOException or if the specified text is not valid JSONJsonIOExceptionJsonSyntaxException- 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 otherparsemethods, 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.LENIENTand will be restored once this method returns.- Throws:
JsonParseException- if there is an IOException or if the specified text is not valid JSONJsonIOExceptionJsonSyntaxException- 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:
JsonIOExceptionJsonSyntaxException
-
parse
@Deprecated @InlineMe(replacement="JsonParser.parseReader(json)", imports="com.google.gson.JsonParser") public JsonElement parse(JsonReader json) throws JsonIOException, JsonSyntaxException
Deprecated.- Throws:
JsonIOExceptionJsonSyntaxException
-
-