如何告诉 Json.NET 忽略第 3 方对象中的属性?

2024-04-16

Json.NET 文档说你使用JsonIgnore不要序列化类中的某些属性:

public class Account
{
    public string FullName { get; set; }
    public string EmailAddress { get; set; }

    [JsonIgnore]
    public string PasswordHash { get; set; }
}

如何使 Json.NET 在序列化第 3 方对象时忽略特定属性JsonConvert.SerializeObject?


制作自定义合约解析器:

public class ShouldSerializeContractResolver : DefaultContractResolver
{
    public static ShouldSerializeContractResolver Instance { get; } = new ShouldSerializeContractResolver();

    protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
    {
        JsonProperty property = base.CreateProperty(member, memberSerialization);        
        if (typeof(Account).IsAssignableFrom(member.DeclaringType) && member.Name == nameof(Account.PasswordHash))
        {
            property.Ignored = true;
        }
        return property;
    }
}

我如何测试它:

        var account = new Account
        {
            PasswordHash = "XXAABB"
        };
        var settings = new JsonSerializerSettings
        {
            ContractResolver = ShouldSerializeContractResolver.Instance
        };
        var json = JsonConvert.SerializeObject(account, settings);
        Console.WriteLine(json);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何告诉 Json.NET 忽略第 3 方对象中的属性? 的相关文章

  • 有没有办法在 .Net 中创建“自托管”网站? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 类似于 WCF 自托管 有没有办法创建一个在控制台应用程序中 自托管 的网站或dll 提出这个问题的方
  • nUnit Assert.That(method,Throws.Exception) 不捕获异常

    有人可以告诉我为什么这个检查异常的单元测试失败了 显然我真正的测试是检查其他代码 但我使用 Int32 Parse 来显示问题 Test public void MyTest Assert That Int32 Parse abc Thro
  • 调试Windows服务

    Scenario 我有一个用 C 编写的 Windows 服务 我已经阅读了所有关于如何调试它的谷歌线程 但我仍然无法让它工作 我已经运行 PathTo NetFramework InstallUtil exe C MyService ex
  • C# 检查闰年

    我想将输入日期 1 年添加到名为完成日期的列中 如果输入日期是闰年 我需要添加 364 天 如果不是 365 天的话 有没有办法在 c 中检查这一点 使用当前日期时间年份并操作闰年 不操作 然后添加天数 Thanks 您可以使用日期时间 I
  • C++ 中“return *this”是什么意思?

    我正在将 C 程序转换为 C 但这部分让我感到困惑 return this 是什么意思 template lt EDemoCommands msgType typename PB OBJECT TYPE gt class CDemoMess
  • 如何以编程方式区分不同的 IOException?

    我正在对写入 Process 对象的 StandardInput 流的代码进行一些异常处理 Process 有点像 unix head 命令 它只读取输入流的一部分 当进程终止时 写入线程会失败并显示 IOException The pip
  • 如何在MVVM架构中将animationview play与LottieForms绑定?

    所以我在列表视图中处理动画 并且我想随时播放一次 所以我想控制它 这是图书馆https github com martijn00 LottieXamarin https github com martijn00 LottieXamarin
  • Windows 消息

    我需要发送带有自定义 ID 的自定义 Windows 消息 其他应用程序将侦听该消息 Windows 是否为内部消息保留任何预定义的消息 ID 范围 如 SQL Server 那样 内部消息最多为 50 000 The 文档 https m
  • FormsAuthentication.SetAuthCookie() 是否需要重定向?

    检查用户的凭据并确认其良好后 我正在使用FormsAuthentication SetAuthCookie Username false 对用户进行身份验证 然后在母版页中我使用Page User Identity IsAuthentica
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • 当无法处理指定的情况时,在 switch 语句中抛出异常

    假设我们有一个函数可以在 MVC 应用程序的系统中更改用户的密码 public JsonResult ChangePassword string username string currentPassword string newPassw
  • 将引用托管代码中分配的内存的指针传递给非托管代码

    我在 C 中分配了一个大的 char 缓冲区 并且希望将指向此数据的指针传递给 DLL 中的未管理的 c 函数 现在我认为要使其工作 必须修复字符缓冲区 以便 GC 在函数工作时无法移动它 如果是这样 我会声明缓冲区已固定并调用 UNSAF
  • 非数字输入导致死循环

    由于某种原因 如果用户输入了错误的数据类型 例如 j 或 循环将停止要求输入并继续显示 Enter an integer gt 一遍又一遍 如何让程序处理错误的输入 为什么输入非数字值会导致如此奇怪的行为 define SENTINEL 0
  • 如何从 .NET DataGridView 控件单元格值写入文本文件?

    我有以下代码应该循环遍历我的所有行DataGridView 并将其所有单元格值写入文本文件 但是 它输出所有行 但仅输出每行的第一个单元格 而不输出其他三个单元格 string file name C test1 txt var objWr
  • 何时使用 const char * 何时使用 const char[]

    我知道它们是不同的 我知道它们有何不同 并且我阅读了我能找到的所有关于char vs char 但所有这些答案都没有告诉我们什么时候应该使用它们 所以我的问题是 你什么时候使用 const char text text 你什么时候使用 co
  • 将对象转换为泛型类型

    我已经有一段时间没有睡觉了 所以这可能比我想象的要容易 我有一个通用类或多或少是这样的 public class Reference
  • 如何在网格视图中突出显示文本的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 如何突出显示某个单词 https stackoverflow com questions 9546761 how can i highlight a word 我有一个网格视图和一个文本框 用于从列中
  • OledbConnection.Dispose() 是否关闭连接? [复制]

    这个问题在这里已经有答案了 可能的重复 如果使用 using 子句 是否需要关闭 DbConnection https stackoverflow com questions 12033998 is there any need to cl
  • 缓存行对齐(需要文章澄清)

    我最近在我的应用程序中遇到了我认为是错误共享的问题 我查了一下关于如何将我的数据与缓存行对齐 他建议使用以下 C 代码 C using C 0x alignment syntax template
  • Phong 着色问题

    我正在根据以下内容编写着色器冯模型 http en wikipedia org wiki Phong reflection model 我正在尝试实现这个方程 其中 n 是法线 l 是光线方向 v 是相机方向 r 是光反射 维基百科文章中更

随机推荐

  • Xamarin Studio 中的目标平台被禁用?

    When creating a new project the target platform Android is already greyed out so can t proceed 我已经链接了SDK和NDK 如果您未安装 Xama
  • 这段 Python 代码是否容易受到 SQL 注入攻击? (SQLite3)

    正如标题所示 我想知道这段代码是否容易受到 SQL 注入攻击 如果是这样 是否有更好 更安全的方法来实现同样的目标 def add table args statement INSERT INTO s VALUES s table args
  • 在 CodeIgniter 中使用模型

    有人可以向我解释什么时候在 CI 中使用模型是一个好的实践吗 维基百科上的一篇文章将 CI 模型称为 完全可选且很少需要 这是真的吗 假设您需要调用一个名为get user info从数据库检索用户信息 你可以有这样的函数 class Ho
  • 为什么 std::bitset<8> 变量无法处理 11111111?

    为什么这个程序显示以下输出 include
  • Swift:MKAnnotation 长标题文本

    我有很长的 MKannotationView 标题文本 有没有一种简单的方法可以使标题中的文本大小合适 reuseId Pin var pinView mapView dequeueReusableAnnotationViewWithIde
  • 如何在滚动更改事件上获取android滚动视图的第一个可见子项

    我想在每个滚动更改事件上从 android 滚动视图获取第一个可见的子视图 就像 当我们向下滚动时 我们会得到所有即将在屏幕上可见的视图 ID 或引用 如何 我自己得到了它 这是我的代码 在这里 我们需要创建自定义回调监听器 在其 onSc
  • 如何更改列的 CSS - ReactTable

    我在用反应表 https www npmjs com package react table installation在我的应用程序中 我坚持做一件事 即改变CSS of columns当调整列大小时 目前当你resize仅一列cursor
  • Android 5.0(Lollipop)小部件按钮的文本全部大写[重复]

    这个问题在这里已经有答案了 我有一个简单的主屏幕小部件 上面有几个按钮 我的问题是 当小部件在 Lollipop 上运行时 按钮的文本全部大写 任何以前的 Android 版本都没有这个问题 layout xml 中的按钮是非常普通的按钮
  • 在 Swift 中捕获 NSException

    Swift 中的以下代码引发 NSInvalidArgumentException 异常 task NSTask task launchPath SomeWrongPath task launch 我怎样才能捕获异常 据我了解 Swift
  • 为什么此 SQL 存储过程需要创建临时表才能工作(返回结果)?

    IBM Informix 动态服务器版本 11 50 FC6 我正在开发一个小型存储过程 该过程将从表中获取名称字段并将它们解析为最多 8 个字符的 用户名 这是我正在尝试的代码 CREATE PROCEDURE build jics us
  • Android TCP 连接最佳实践

    我正在开发一个需要 TCP 连接到 TCP 服务器的 Android 应用程序 用 Node js 编写 我的 Android TCP 客户端正在工作 可以来回发送消息 我的具体问题是 在 Android 中处理与服务器的 TCP 连接的最
  • 如何在单元格 Swift 2 中删除项目后重新加载表格视图

    我有一个帐户列表TableView 按下按钮后 项目将被删除 到目前为止 一切都很好 删除后如何刷新tableView 请查看下面的屏幕截图以获取更多信息 TableView在另一个ViewController中 要删除的按钮在ViewCo
  • 删除数组中第一级标识符[重复]

    这个问题在这里已经有答案了 我认为这个问题以前已经出现过 但找不到任何答案 如果已经回答 请通过链接为我指出正确的方向 我有一个数组 我不想删除第一级标识符 我想有一个函数可以实现这个功能吗 它是如何的示例 0 gt Array 8 gt
  • 如何从数字列表中获取字符串?

    我有一个 Erlang 符号列表 104 105 106 107 如何从此列表中获取字符串 hijk Erlang 中不存在字符串这种数据类型 Stings 只是字符列表 104 105 106 107 and hijk 是完全等价的 事实
  • Facebook SDK:应用程序未注册为 URL 方案

    我正在使用Facebook SDK found here http components xamarin com view facebookios 并且正在尝试提供的示例 在文件夹中FacebookiOSSample 如果我简单地替换App
  • 如何检查一个类没有参数构造函数

    Object obj new Object try obj getClass getConstructor catch SecurityException e e printStackTrace catch NoSuchMethodExce
  • 重新创建一棵扁平的树

    我有一个地图向量 我想以嵌套方式对其进行转换 数据结构如下 def data id 1 name a parent 0 id 2 name b parent 0 id 3 name c parent 0 id 4 name a 1 pare
  • 如何在 Backbone.js 中加载具有外键关系的子模型?

    抱歉 如果这有点复杂 我仍在学习 Backbone js 加载和保存内部具有子模型的 Backbone 模型的正确方法是什么 我什至应该有子模型吗 例如 请原谅咖啡脚本 如果我有类似的东西 class Address extends Bac
  • 运行为包:不可调试

    我正在尝试从我的 Android 设备 运行 One UI 2 0 的非 root Exynos Galaxy S9 中提取数据库文件 每次打开 Android Studio 3 6 2 gt 设备文件资源管理器时 我都会收到消息 run
  • 如何告诉 Json.NET 忽略第 3 方对象中的属性?

    Json NET 文档说你使用JsonIgnore不要序列化类中的某些属性 public class Account public string FullName get set public string EmailAddress get