System.Text.Json反序列化失败

时间:2020-05-27 22:21:11

标签: .net-core blazor system.text.json

使用此DTO:

public class QuestionDTO {
    public Guid Id { get; set; }
    public string Prompt { get; set; }
    public List<Answer> Choices { get; set; }

    public QuestionDTO() {

    }

    public QuestionDTO(Question question) {
        this.Id = question.Id;
        this.Prompt = question.Prompt;
        this.Choices = question.Choices;
    }
}

我遇到一个有关无参数构造函数无法解析的错误。此后,我已经修复了该问题,但是现在我的对象被反序列化为空:

using System.Text.Json;
var results = JsonSerializer.Deserialize<List<QuestionDTO>>(jsonString);

jsonString包含3个具有正确数据的项目,反序列化列表包含3个项目,但是所有属性均为空。

enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下,新的json库区分大小写。您可以通过提供设置选项来更改此设置。这是一个示例:

private JsonSerializerOptions _options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }

private async Task SampleRequest()
{
    var result = await HttpClient.GetStreamAsync(QueryHelpers.AddQueryString(queryString, queryParams));
    _expenses = await JsonSerializer.DeserializeAsync<List<Common.Dtos.Expenses.Models.Querys.ExpensesItem>>(result, _options);
}
相关问题