Dictionary для ошибки десериализации System.Text.JsonC#

Место общения программистов C#
Anonymous
Dictionary для ошибки десериализации System.Text.Json

Сообщение Anonymous »

Я не могу десериализовать 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
}
Пример кода: https://dotnetfiddle.net/XA0uPX
Я сделал что-то не так или что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/791 ... tion-error

Вернуться в «C#»