Я не могу десериализовать Dictionary из строки json, когда ключ перечисления находится в нижнем регистре кебаба. Я пытаюсь определить JsonStringEnumConverter(JsonNamingPolicy.KebabCaseLower) как, но он не работает должным образом. Я использую компилятор C# 8.0.
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var json = @"{
""enum-one"": 1.1
}";
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters = {
new JsonStringEnumConverter(JsonNamingPolicy.KebabCaseLower)
}
};
var enumOne = JsonSerializer.Deserialize(@"""enum-one""", options); // This works
var enumDictionary = JsonSerializer.Deserialize(json, options); // This will throw error
}
}
public enum TestEnum
{
EnumOne = 1,
EnumTwo = 2,
EnumThree = 3
}
Я не могу десериализовать Dictionary из строки json, когда ключ перечисления находится в нижнем регистре кебаба. Я пытаюсь определить JsonStringEnumConverter(JsonNamingPolicy.KebabCaseLower) как, но он не работает должным образом. Я использую компилятор C# 8.0. [code]using System.Text.Json; using System.Text.Json.Serialization; using System.Collections.Generic;
public class Program { public static void Main() { var json = @"{ ""enum-one"": 1.1 }";
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Converters = { new JsonStringEnumConverter(JsonNamingPolicy.KebabCaseLower) } };
var enumOne = JsonSerializer.Deserialize(@"""enum-one""", options); // This works
var enumDictionary = JsonSerializer.Deserialize(json, options); // This will throw error
} }
public enum TestEnum { EnumOne = 1, EnumTwo = 2, EnumThree = 3 } [/code] Пример кода: https://dotnetfiddle.net/XA0uPX Я сделал что-то не так или что-то упустил?