json.setSerializer(Color.class, new ReadOnlySerializer<Color>() {
public Color read (Json json, JsonValue jsonData, Class type) {
if (jsonData.isString()) return get(jsonData.asString(), Color.class);
String hex = json.readValue("hex", String.class, (String)null, jsonData);
if (hex != null) return Color.valueOf(hex);
float r = json.readValue("r", float.class, 0f, jsonData);
float g = json.readValue("g", float.class, 0f, jsonData);
float b = json.readValue("b", float.class, 0f, jsonData);
float a = json.readValue("a", float.class, 1f, jsonData);
return new Color(r, g, b, a);
}