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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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