package org.kairosdb.client.testUtils; import com.google.gson.*; import com.google.gson.reflect.TypeToken; import org.kairosdb.client.builder.DataPoint; import org.kairosdb.client.builder.Metric; import java.lang.reflect.Type; import java.util.List; public class MetricParser { private static final Type listType = new TypeToken<List<Metric>>(){}.getType(); private final Gson gson; public MetricParser() { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(DataPoint.class, new DataPointDeserializer()); gson = gsonBuilder.create(); } public List<Metric> parse(String json) { return gson.fromJson(json, listType); } private class DataPointDeserializer implements JsonDeserializer<DataPoint> { @Override public DataPoint deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { JsonArray array = jsonElement.getAsJsonArray(); long timestamp = array.get(0).getAsLong(); double value = array.get(1).getAsDouble(); return new DataPoint(timestamp, value); } } }