
io.dangernoodle.utils.GsonTransformer Maven / Gradle / Ivy
The newest version!
package io.dangernoodle.utils;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser;
public abstract class GsonTransformer implements JsonTransformer
{
private final Gson gson;
private final JsonParser jsonParser;
private final Gson prettyPrinter;
public GsonTransformer()
{
GsonBuilder builder = createGsonBuilder();
this.gson = builder.create();
this.jsonParser = new JsonParser();
this.prettyPrinter = builder.setPrettyPrinting().create();
}
@Override
public T deserialize(Reader reader, Class clazz)
{
return gson.fromJson(reader, clazz);
}
@Override
public T deserialize(String json, Class clazz)
{
return gson.fromJson(json, clazz);
}
@Override
public String prettyPrint(String json)
{
return prettyPrinter.toJson(jsonParser.parse(json).getAsJsonObject());
}
protected abstract GsonBuilder createGsonBuilder();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy