using System.Text.Json.Serialization;
using System.Collections.Generic;
public static void Main()
var emptyResult = JsonSerializer.Deserialize<Model>(emptyJson);
var nonEmptyResult = JsonSerializer.Deserialize<Model>(nonEmptyJson);
[JsonPropertyName("values")]
[JsonConverter(typeof(MySpecialConverter))]
public Dictionary<string,string> Values {get;set;} = new();
public class MySpecialConverter : JsonConverter<Dictionary<string,string>>
public override void Write(Utf8JsonWriter writer,
Dictionary<string,string> dictionaryValue,
JsonSerializerOptions options) => throw new NotSupportedException();
public override Dictionary<string,string> Read(ref Utf8JsonReader reader,
JsonSerializerOptions options)
if (reader.TokenType == JsonTokenType.StartArray)
return new Dictionary<string,string>();
var converter = (JsonConverter<Dictionary<string,string>>)options.GetConverter(typeof(Dictionary<string,string>));
return converter.Read(ref reader, typeToConvert, options);