code: public JsonElement parse(Reader json) throws JsonIOException, JsonSyntaxException {
      try {
        JsonReader jsonReader = new JsonReader(json);
        JsonElement element = parse(jsonReader);
        if (!element.isJsonNull() && jsonReader.peek() != JsonToken.END_DOCUMENT) {
          throw new JsonSyntaxException("Did not consume the entire document.");
        }
        return element;
      } catch (MalformedJsonException e) {
        throw new JsonSyntaxException(e);
      } catch (IOException e) {
        throw new JsonIOException(e);
      } catch (NumberFormatException e) {
        throw new JsonSyntaxException(e);
      }
    }
docs: Parses the specified JSON string into a parse tree
  
  @param json JSON text
  @return a parse tree of {@link JsonElement}s corresponding to the specified JSON
  @throws JsonParseException if the specified text is not valid JSON
  @since 1.3