ColorAdapter.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. package TypeAdapter;
  2. import java.awt.Color;
  3. import java.lang.reflect.Type;
  4. import com.google.gson.JsonDeserializationContext;
  5. import com.google.gson.JsonDeserializer;
  6. import com.google.gson.JsonElement;
  7. import com.google.gson.JsonObject;
  8. import com.google.gson.JsonParseException;
  9. import com.google.gson.JsonPrimitive;
  10. import com.google.gson.JsonSerializationContext;
  11. import com.google.gson.JsonSerializer;
  12. public class ColorAdapter implements JsonSerializer<Color>, JsonDeserializer<Color> {
  13. @Override
  14. public Color deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
  15. JsonObject object = arg0.getAsJsonObject();
  16. return new Color(object.get("R").getAsInt(), object.get("G").getAsInt(), object.get("B").getAsInt());
  17. }
  18. @Override
  19. public JsonElement serialize(Color arg0, Type arg1, JsonSerializationContext arg2) {
  20. JsonObject object = new JsonObject();
  21. object.add("R", new JsonPrimitive(arg0.getRed()));
  22. object.add("G", new JsonPrimitive(arg0.getGreen()));
  23. object.add("B", new JsonPrimitive(arg0.getBlue()));
  24. return object;
  25. }
  26. }