System.Text.Json反序列化失败
System.Text.Json Deserialize Fails
有了这个 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个项,但所有属性都是空的。
新的 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);
}
有了这个 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个项,但所有属性都是空的。
新的 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);
}