System.Text.Json.JsonSerializer.Serialize 返回空 Json 对象“”[重复]
Posted
技术标签:
【中文标题】System.Text.Json.JsonSerializer.Serialize 返回空 Json 对象“”[重复]【英文标题】:System.Text.Json.JsonSerializer.Serialize returns empty Json object "" [duplicate]System.Text.Json.JsonSerializer.Serialize 返回空 Json 对象“”[重复] 【发布时间】:2020-03-06 03:29:13 【问题描述】:环境:Visual Studio 2019 16.3.8、.NET 3.0.100、.NET Core 3.0 单元测试。
以下对 System.Text.Json.JsonSerializer.Serialize 的所有 3 次调用都返回空对象:“”
我一定是做错了什么……但我就是没看到?
public class MyObj
public int myInt;
[TestMethod]
public void SerializeTest()
var myObj = new MyObj() myInt = 99 ;
var txt1 = System.Text.Json.JsonSerializer.Serialize(myObj);
var txt2 = System.Text.Json.JsonSerializer.Serialize(myObj, typeof(MyObj));
var txt3 = System.Text.Json.JsonSerializer.Serialize<MyObj>(myObj);
【问题讨论】:
【参考方案1】:我很确定序列化程序不适用于字段。 所以请改用属性。
public int MyInt get; set;
【讨论】:
如果是这样,那到底为什么是not documented? 参考:How to use class fields with System.Text.Json.JsonSerializer? 还有这个问题 - JsonSerializer should support field as well as properties @stuartd - 已记录在案。请参阅How to serialize and deserialize JSON in .NET: Serialization behavior:默认情况下,所有公共属性都是序列化的。您可以指定要排除的属性...目前,已排除字段。 @dbc“记录在 MS 网站上的某个地方,这让我们面对它是一个不断变化的信息流沙”比“方法的行为记录在方法自己的文件中”有用大约 100 倍文档”!以上是关于System.Text.Json.JsonSerializer.Serialize 返回空 Json 对象“”[重复]的主要内容,如果未能解决你的问题,请参考以下文章