All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.shib.java.lib.common.utils.JsonLib Maven / Gradle / Ivy

package me.shib.java.lib.common.utils;

import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class JsonLib {
	
	private static JsonLib defaultJsonLib;
	
	private Gson gson;
	private Gson prettyGson;
	private Gson upperCamelCaseGson;
	
	public JsonLib() {
		gson = new Gson();
	}
	
	public static JsonLib getDefaultInstance() {
		if(defaultJsonLib == null) {
			defaultJsonLib = new JsonLib();
		}
		return defaultJsonLib;
	}
	
	private Gson getPrettyGson() {
		if(null == prettyGson) {
			prettyGson = new GsonBuilder().setPrettyPrinting().create();
		}
		return prettyGson;
	}
	
	private Gson getUpperCamelCaseGson() {
		if(null == upperCamelCaseGson) {
			upperCamelCaseGson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
		}
		return upperCamelCaseGson;
	}
	
	public  T fromJson(String json, Class classOfT) {
		return gson.fromJson(json, classOfT);
	}
	
	public  T fromUpperCamelCaseJson(String json, Class classOfT) {
		return getUpperCamelCaseGson().fromJson(json, classOfT);
	}
	
	public String toJson(Object object) {
		return gson.toJson(object);
	}
	
	public String toPrettyJson(Object object) {
		return getPrettyGson().toJson(object);
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy