17 using System.Collections.Generic;
18 using Newtonsoft.Json;
19 using Newtonsoft.Json.Linq;
41 public override void WriteJson(JsonWriter writer,
object? value, JsonSerializer serializer)
44 if (ReferenceEquals(parameterSet,
null))
return;
46 writer.WriteStartObject();
48 if (parameterSet.Value !=
null)
50 writer.WritePropertyName(
"parameterSet");
51 serializer.Serialize(writer, parameterSet.Value);
54 writer.WriteEndObject();
67 public override object ReadJson(JsonReader reader, Type objectType,
object existingValue, JsonSerializer serializer)
69 if (reader.TokenType == JsonToken.StartArray)
71 if (JArray.Load(reader).Count == 0)
73 return new ParameterSet(-1,
new Dictionary<string, string>());
76 else if (reader.TokenType == JsonToken.StartObject)
78 var jObject = JObject.Load(reader);
80 var value = jObject[
"parameterSet"] ?? jObject;
82 var parameterSet =
new ParameterSet(-1, value.ToObject<Dictionary<string, string>>());
87 throw new ArgumentException($
"Unexpected Tokentype {reader.TokenType}");