
nl.pvanassen.highchart.api.base.GsonHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of highchart-java-api Show documentation
Show all versions of highchart-java-api Show documentation
A Java API to generate highchart json on the server side.
The newest version!
package nl.pvanassen.highchart.api.base;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import nl.pvanassen.highchart.api.format.DateTimeLabelFormats;
import nl.pvanassen.highchart.api.serializer.DateTimeLabelFormatsSerializer;
import nl.pvanassen.highchart.api.serializer.StyleSerializer;
import com.google.gson.*;
public final class GsonHelper {
private static final String DATE_FORMAT = "yyyyMMdd";
private static final String USER_OBJECT = "userObject";
private static final GsonHelper INSTANCE = new GsonHelper();
static String toJson(Object object) {
return GsonHelper.INSTANCE.gsonBuilder.create().toJson(object);
}
private final GsonBuilder gsonBuilder;
private GsonHelper() {
gsonBuilder = new GsonBuilder()
.registerTypeAdapter(DateTimeLabelFormats.class, new DateTimeLabelFormatsSerializer()) //
.registerTypeAdapter(Style.class, new StyleSerializer())//
.setDateFormat(GsonHelper.DATE_FORMAT)//
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipClass(Class> arg0) {
return false;
}
@Override
public boolean shouldSkipField(FieldAttributes attributes) {
return attributes.getName().equals(GsonHelper.USER_OBJECT);
}
}).registerTypeAdapter(Double.class, new JsonSerializer() {
@Override
public JsonElement serialize(Double originalValue, Type typeOf, JsonSerializationContext context) {
BigDecimal bigValue = BigDecimal.valueOf(originalValue);
return new JsonPrimitive(bigValue.toPlainString());
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy