using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IPA.JsonConverters { internal class MultilineStringConverter : JsonConverter { public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartArray) { var list = serializer.Deserialize(reader); return string.Join("\n", list); } else return reader.Value as string; } public override void WriteJson(JsonWriter writer, string value, JsonSerializer serializer) { var list = value.Split('\n'); if (list.Length == 1) serializer.Serialize(writer, value); else serializer.Serialize(writer, list); } } }