关于缺失属性的 JSON 反序列化行为

Jiale Xue - MSFT 46,466 信誉分 Microsoft 供应商
2024-05-23T07:33:56.8566667+00:00

你好

我在 .NET 5 C# 应用程序中使用 System.Text.Json.JsonSerializer.Serialize 将应用程序状态保存到 json 文件。 应用程序使用 JsonSerializer.Deserialize<MyClass>(jsonString) 读回状态,效果很好。但是,我正在寻找通过添加或删除属性调整 MyClass 后反序列化方法的默认行为。我在文档中查看了默认的反序列化行为,但它没有提到缺少的属性或已弃用的属性会发生什么。我还在二进制序列化中发现了有关版本容忍序列化的信息。

Note:此问题总结整理于: JSON Deserialization behaviour regarding missing properties

C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
188 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-05-23T13:31:49.8966667+00:00

    似乎没有必要做额外的事情。

    如果类中有一个属性不在 json 中,那么它将是该数据类型的默认值。如果 json 中有一个属性不在类中,则此属性将被忽略。

    你遇到过任何错误吗?还是我误解了你的意思?


    如果回复有帮助,请点击“接受答案”并点赞。 注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。