gpt4 book ai didi

c# - System.Text.Json 未序列化 List

转载 作者:行者123 更新时间:2023-12-05 01:32:58 24 4
gpt4 key购买 nike

我只是 .Net 5。

我正在使用 Blazor 创建 QC 应用程序,我正在使用 System.Text.Json序列化一个属性为 List<T> 的包装器对象这是发布到服务器并保存在数据库中的 QC 问题的答案。
但是 List 中的每个项目都没有被序列化,所以发布的请求有一个空 List 。

所以在我的代码中,我只是对一个对象进行了非常简单的序列化:

string content = JsonSerializer.Serialize(obj);

如果我调试然后我可以看到 Answers数组的长度正确,但每一项都是空的:
'{"Answers":[{},{},{},{}],...}'
但是,C# 对象肯定具有正确输入值的属性。

T是一个答案对象,它只是一个没有注释的 POCO:

    public class ReturnedQCResult
{
public string Question;
public int QuestionEntryTypeID;
public char QuestionType;
public short QuestionSequence;
public string Text;
public decimal? Number;
public bool? YesNo;
public DateTime? DateEntry;
public TimeSpan? TimeEntry;
public long QuestionID;
}

有没有人知道为什么会发生这种情况,或者是否有要打开的设置?

非常感谢。

最佳答案

虽然以前版本的 System.Text.Json 只能序列化公共(public)属性,但从 .NET 5 开始,您现在可以明确告诉 System.Text.Json 在序列化中包含字段:https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-5-0#include-fields

var options = new JsonSerializerOptions()
{
IncludeFields = true,
};
string content = JsonSerializer.Serialize(obj, options);

关于c# - System.Text.Json 未序列化 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65078056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com