This commit is contained in:
paulevsGitch 2021-05-23 00:52:01 +03:00
parent b80a7b3630
commit 6b0bf593ad
13 changed files with 1028 additions and 2 deletions

View file

@ -0,0 +1,93 @@
package ru.bclib.util;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import ru.bclib.BCLib;
public class JsonFactory {
public final static Gson GSON = new GsonBuilder().setPrettyPrinting().create();
public static JsonObject getJsonObject(InputStream stream) {
try {
Reader reader = new InputStreamReader(stream);
JsonElement json = loadJson(reader);
if (json != null && json.isJsonObject()) {
JsonObject jsonObject = json.getAsJsonObject();
return jsonObject != null ? jsonObject : new JsonObject();
}
}
catch (Exception ex) {
BCLib.LOGGER.catching(ex);
}
return new JsonObject();
}
public static JsonObject getJsonObject(File jsonFile) {
if (jsonFile.exists()) {
JsonElement json = loadJson(jsonFile);
if (json != null && json.isJsonObject()) {
JsonObject jsonObject = json.getAsJsonObject();
return jsonObject != null ? jsonObject : new JsonObject();
}
}
return new JsonObject();
}
public static JsonElement loadJson(File jsonFile) {
if (jsonFile.exists()) {
try (Reader reader = new FileReader(jsonFile)) {
return loadJson(reader);
}
catch (Exception ex) {
BCLib.LOGGER.catching(ex);
}
}
return null;
}
public static JsonElement loadJson(Reader reader) {
return GSON.fromJson(reader, JsonElement.class);
}
public static void storeJson(File jsonFile, JsonElement jsonObject) {
try (FileWriter writer = new FileWriter(jsonFile)) {
String json = GSON.toJson(jsonObject);
writer.write(json);
writer.flush();
}
catch (IOException ex) {
BCLib.LOGGER.catching(ex);
}
}
public static int getInt(JsonObject object, String member, int def) {
JsonElement elem = object.get(member);
return elem == null ? def : elem.getAsInt();
}
public static float getFloat(JsonObject object, String member, float def) {
JsonElement elem = object.get(member);
return elem == null ? def : elem.getAsFloat();
}
public static boolean getBoolean(JsonObject object, String member, boolean def) {
JsonElement elem = object.get(member);
return elem == null ? def : elem.getAsBoolean();
}
public static String getString(JsonObject object, String member, String def) {
JsonElement elem = object.get(member);
return elem == null ? def : elem.getAsString();
}
}