json 从遗留属性名称反序列化

2024-03-16

如何设置 Newtonsoft.Json 使用旧成员名称反序列化对象,但使用当前成员名称序列化它?

编辑:要求是从正在序列化/反序列化的类中删除过时的成员。

这是一个需要序列化和反序列化的示例对象。我给了一个属性一个属性,其中包含它过去可能已序列化的名称列表。

[DataContract]
class TestObject {
    [LegacyDataMemberNames("alpha", "omega")]
    [DataMember(Name = "a")]
    public int A { get; set; }
}

我希望始终使用名称“a”进行 json 序列化,但能够从任何旧名称(包括“alpha”和“omega”以及当前名称“a”)反序列化为一个属性


使用 Json.NET 的一个非常简单的解决方案是仅提供带有 setter 的遗留属性。

class TestObject {
    public int A { get; set; }
    public int alpha { set => A = value; }
    public int omega { set => A = value; }
}

您可能不希望这些公开,在这种情况下您可以标记private并添加JsonProperty属性。

class TestObject {
    public int A { get; set; }
    [JsonProperty] private int alpha { set => A = value; }
    [JsonProperty] private int omega { set => A = value; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json 从遗留属性名称反序列化 的相关文章

  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • ruby方法名的大小写规则是什么?

    我是一个 Ruby 初学者 从书中 我知道 Ruby 方法名称应该以小写字母或下划线开头 但我发现了不同的场景 如果一个方法在类外部定义 它只能以小写字母开头 如果你尝试定义一个以大写字母开头的方法 Ruby 会报错 例如 define s
  • Microsoft 的数据库命名约定?

    I found 命名指南 http msdn microsoft com en us library ms229045 aspx来自MSDN 但是微软有关于MSSQL数据库的指南吗 SQL Server 中使用的命名约定冒险工场 https
  • 跟踪 Postgres 中一行的最后修改时间戳

    在 Postgres 中 我想存储表的上次更新 插入时间 Microsoft SQL Server 提供了一种类型timestamp由数据库自动维护 But timestamp在 Postgres 中 工作方式不同 它不会自动更新 并且列始
  • 将行添加到数据框中,并包含组内数据的总和

    我下面有一个示例数据框 eg data lt data frame time c 1 1 2 2 type c long short long short size c 200 50 500 150 我需要创建行来汇总每个时间段的大小值 我
  • 名称值对已弃用

    由于 Android 22 NameValuePair 已被弃用 The 文档 http developer android com reference org apache http message BasicNameValuePair
  • 监控所有使用网络的应用程序建立的连接的 IP 地址,无需 root Android 手机

    我正在尝试构建一个 Android 应用程序 无需 root 手机 该应用程序从所有应用程序与手机之间的网络连接收集 IP 地址 我负责这个项目 关键点是手机必须保持未root状态 这 据我所知 意味着我不能使用tcpdump或libpca
  • npm 5.4.1 安装/卸载全部失败

    我使用的是 Windows 10 我通过执行以下操作升级了我的 npmnpm i g npm 但是没有软件包正在安装或卸载 安装时它始终挂在安装后 如下所示 PS C Users Mercurius Documents GitHub cat
  • 如何在wpf画布控件中添加动态设计的用户控件时获取高度和宽度?

    您好 我正在开发一个 wpf 应用程序 我正在画布中添加 myUserControl 对象 我需要高度和添加的用户控制 现在的问题是用户控件是动态设计的 我正在创建网格并根据用户配置添加行和列 并且我在高度和宽度上给出自动 所以我在画布中添
  • 如何解决React redux中的数据加载问题

    我试图弄清楚当数据仍在加载时如何管理 显示此组件 我在这种情况下使用react redux 有什么解决这个问题的建议吗 虽然我用延迟加载来包装它 但在这种情况下似乎并没有那么有效 对此有何建议 动作 js export const getC
  • 如何从 Eclipse 中的接口导航到实现类? [复制]

    这个问题在这里已经有答案了 假设我有 interface Foo void doStuff class FooImpl implements Foo public void doStuff stuff 当我看见myFoo doStuff 在
  • 在带有数组的单个函数中多次调用“useVal” - 意外行为

    我打电话给我的useArr在单个函数调用中多次调用函数 每次致电useArr 我正在将新的价值推向现有的arr功能 我用一个令人震惊的每个电话pause功能 而不是渲染字符串abcde以逐步 间隔的方式 它只是覆盖前一个字母 我对引擎盖下的
  • Jenkins Github 插件 - 触发参数化构建

    我有一个 自由式项目 Jenkins 作业 它有一个参数 GIT BRANCH这样我就可以手动或通过 GitHub hook 触发它 问题是 GitHub 插件似乎无法正确识别 设置推送的分支 当我查看 Jenkins 构建上的 GitHu
  • 我可以编写一个 CSS 选择器来选择不具有特定类或属性的元素吗?

    我想编写一个 CSS 选择器规则来选择所有元素don t有一定的班级 例如 给定以下 HTML h1 class printable Example h1
  • React-Native:哪种自动化 CI 工具最好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 React Native 社区 你们使用什么 CI 工具 我们的团队构建了一个react native ios应用程序 我们还有一个单独的测试团
  • 恢复发送至自部署合约的BNB

    我正在尝试创建 BOT 因此在 BSC 中从 eatamask 创建并部署了一个合约 我向该合约发送了一些 BNB 来检查 但没有成功 我怎样才能拿回BNB 感谢帮助 因为我对此很陌生 除非您在合约中具有允许您提取资金的自定义功能 否则它们
  • 如果 URL 是 https,Python urllib2 会给出“网络无法访问错误”

    我正在尝试使用 urllib2 库获取一些网址 a urllib2 urlopen http www google com ret a read 上面的代码工作正常 并给出了预期的结果 但是当我创建 url https 时 它会给出 网络无
  • 将文本插入活动迷你缓冲区

    我试图在运行外部命令后将文本插入到迷你缓冲区中 例如 call interactively eval expression insert blah 当然 问题是 eval expression 在用户输入之前不会返回 我的最终目标是添加一些
  • Xcode 6:项目导航器中没有 Frameworks 文件夹

    我正在使用 Xcode 6 并遵循 Xcode 版本 4 教程 因此这里和那里的情况有所不同 我的项目导航器中似乎没有 Frameworks 文件夹 因此当我下载一些 framework 文件并在项目编辑器的构建阶段手动添加它们时 我没有
  • HttpUtility.UrlEncoded URL 段的错误请求 400

    因此 如果我的应用程序 MVC url 中存在 url 编码段 则 IIS 会抛出 BAD REQUEST 400 e g http u lasoo com au Offer http u lasoo com au Offer 9289 7
  • json 从遗留属性名称反序列化

    如何设置 Newtonsoft Json 使用旧成员名称反序列化对象 但使用当前成员名称序列化它 编辑 要求是从正在序列化 反序列化的类中删除过时的成员 这是一个需要序列化和反序列化的示例对象 我给了一个属性一个属性 其中包含它过去可能已序