ProjectAres/API/api/src/main/java/tc/oc/api/serialization/JsonUtils.java

39 lines
1.0 KiB
Java

package tc.oc.api.serialization;
import java.io.Reader;
import java.io.StringReader;
import java.lang.reflect.Type;
import javax.inject.Inject;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonSyntaxException;
public class JsonUtils {
private final Gson gson;
private final Gson prettyGson;
@Inject JsonUtils(Gson gson, @Pretty Gson prettyGson) {
this.gson = gson;
this.prettyGson = prettyGson;
}
public String errorContext(Reader reader, Type type) {
JsonDebugReader debugReader = new JsonDebugReader(reader);
try {
gson.fromJson(debugReader, type);
} catch(JsonSyntaxException e) {
return debugReader.getJoinedContext();
}
return "(no parsing error detected)";
}
public String errorContext(String json, Type type) {
return errorContext(new StringReader(json), type);
}
public String prettify(String ugly) {
return prettyGson.toJson(prettyGson.fromJson(ugly, JsonElement.class));
}
}