|
|
- 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<string>
- {
- public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer)
- {
- if (reader.TokenType == JsonToken.StartArray)
- {
- var list = serializer.Deserialize<string[]>(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);
- }
- }
- }
|