@andrey71
админю и учу C#, ASP.NET Core

Почему не происходит десериализация json?

Добрый вечер!

Подскажите пожалуйста, почему не происходит десериализация json?
Я использую using System.Text.Json;
При обращении к api из Postman получаю ответ:
{
    "id": 1,
    "number": 20000004,
    "bagGUID": null
}


public class Barcode
    {       
        public long Id { get; set; }

        public long Number { get; set; }

#nullable enable
        public string? BagGUID { get; set; }
       
    }


Но почему-то десериализовать ответ не получается :(
5fcd0a1270ae0321587740.png

Что же не так? Ошибок никаких нет.

Спасибо!
  • Вопрос задан
  • 298 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега ASP.NET
Токсичный шарпист
Я попробовал запустить ваш код у себя. У меня такое же поведение.
Видимо, по-умолчанию System.Text.Json не применяет никаких автоматических конвертаций имён.
Указал JsonPropertyName и всё заработало.

using System;
using System.Text.Json;
using System.Text.Json.Serialization;

var json = "{\"id\":1,\"number\":42,\"bagGUID\":null}";
var data = JsonSerializer.Deserialize<Barcode>(json);
Console.WriteLine(data!.ToString()); // выведет "Barcode { Id = 1, Number = 42, BagGuid =  }"

record Barcode
{
    [JsonPropertyName("id")]
    public int Id { get; init; }
    [JsonPropertyName("number")]
    public int Number { get; init; }
    [JsonPropertyName("bagGUID")]
    public Guid? BagGuid { get; init; }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы