public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var bg = (SongBackground)value; writer.WriteStartObject(); if (bg.Type == SongBackgroundType.Color) { var conv = new JsonColorConverter(); writer.WritePropertyName("Color"); conv.WriteJson(writer, bg.Color, serializer); } else { if (bg.Type == SongBackgroundType.Image) { writer.WritePropertyName("Image"); writer.WriteValue(bg.FilePath.Replace('\\', '/')); } else { writer.WritePropertyName("Video"); writer.WriteValue(bg.FilePath.Replace('\\', '/')); } } writer.WriteEndObject(); }