dnet-hadoop/dhp-common/src/main/java/eu/dnetlib/dhp/common/utils/AvroGsonFactory.java

46 lines
1.1 KiB
Java

package eu.dnetlib.dhp.common.utils;
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
/**
* Factory for gson object that supports serializing avro generated classes
*
* @author madryk
*
*/
public final class AvroGsonFactory {
//------------------------ CONSTRUCTORS -------------------
private AvroGsonFactory() {}
//------------------------ LOGIC --------------------------
public static Gson create() {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(CharSequence.class, new CharSequenceDeserializer());
return builder.create();
}
public static class CharSequenceDeserializer implements JsonDeserializer<CharSequence> {
@Override
public CharSequence deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
return json.getAsString();
}
}
}