1package com.runehive.util.parser;
3import com.google.gson.*;
4import com.google.gson.stream.JsonReader;
5import org.apache.logging.log4j.LogManager;
6import org.apache.logging.log4j.Logger;
8import java.io.FileReader;
40 this.builder =
new GsonBuilder().create();
51 protected abstract void parse(JsonObject data);
61 try (
final JsonReader reader =
new JsonReader(
new FileReader(
path.toFile()))) {
62 final JsonParser
parser =
new JsonParser();
63 final JsonElement element =
parser.parse(reader);
65 if (element.isJsonNull()) {
66 logger.warn(String.format(
"json document=%s is null",
path));
70 if (element.isJsonArray()) {
71 final JsonArray array = element.getAsJsonArray();
74 final JsonElement element2 = array.get(
index);
75 if (element2 ==
null)
continue;
76 if (element2 instanceof JsonNull)
continue;
78 final JsonObject data = (JsonObject) element2;
81 }
else if (element.isJsonObject()) {
82 parse(element.getAsJsonObject());
86 }
catch (Exception e) {
int index
The index of the current line being parsed.
GenericParser(String path, String extension, boolean log)
Creates a new GenericParser.
final Path path
The path of the file to parse.
GsonParser(String path)
Creates a new GsonParser.
transient Gson builder
The Gson object.
GsonParser(String path, boolean log)
Creates a new GsonParser.
void initialize(int size)
void onEnd()
This method handles what happens after the parser has ended.
static final Logger logger
abstract void parse(JsonObject data)
The method allows a user to modify the data as its being parsed.
final void deserialize()
The method that deserializes the file information.