首页 > 其他分享 >Api中子类继承父类后,子类设置JsonIgnore失效的补救

Api中子类继承父类后,子类设置JsonIgnore失效的补救

时间:2024-08-26 11:03:57浏览次数:7  
标签:set JsonIgnore 子类 System Json Api using public

public class Person
{
    public string Name{get;set;}    
    
    public int Age{get;set;}
}

public class Student : Person
{
    public string Grade {get;set;}

    [Newtonsoft.Json.JsonIgnore]
    public new int Age{get;set;}
}

序列化Student,Age还是一样的输出

写一个转换类


using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;

/// <summary> /// 继承父类后,设置忽略序列化修补设置 /// </summary> public class JsonIgnoreContractResolver : DefaultContractResolver { //protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) //{ // JsonProperty property = base.CreateProperty(member, memberSerialization); // //var ignore = property.GetCustomAttributes(typeof(JsonIgnoreAttribute), inherit: false) // // .OfType<JsonIgnoreAttribute>().SingleOrDefault(); // if (member.IsDefined(typeof(JsonIgnoreAttribute))) // { // property.ShouldSerialize = instance => false; // } // return property; //} protected override List<MemberInfo> GetSerializableMembers(Type objectType) { //Return properties that do NOT have the JsonIgnoreSerializationAttribute return objectType.GetProperties() .Where(pi => !Attribute.IsDefined(pi, typeof(JsonIgnoreAttribute))) .ToList<MemberInfo>(); } }

使用

var settings = new JsonSerializerSettings();
settings.ContractResolver = new JsonIgnoreContractResolver();

指定转换设置,进行操作,就能忽略掉标记了 

[Newtonsoft.Json.JsonIgnore]

的属性

标签:set,JsonIgnore,子类,System,Json,Api,using,public
From: https://www.cnblogs.com/DoNetCShap/p/18380613

相关文章

  • 在NextChat中接入SiliconCloud API 体验不同的开源先进大语言模型
    NextChat介绍One-Clicktogetawell-designedcross-platformChatGPTwebUI,withGPT3,GPT4&GeminiProsupport.一键免费部署你的跨平台私人ChatGPT应用,支持GPT3,GPT4&GeminiPro模型。主要功能在1分钟内使用Vercel免费一键部署提供体积极小(~5MB)的跨......
  • fastapi 跨域请求
    问题描述在前后端开发中遇到一个问题,前端发送请求后,后端报'OPTIONS/mock/user/loginHTTP/1.1'405MethodNotAllowed,如下图:但用fastapi自带的swagger或postman测试又是可以的。 定位原因这是因为在跨域的情况下,在浏览器发起"复杂请求"时主动发起的。跨域共享标准规范......
  • Web API 学习笔记 第四弹
    1.时间戳获取时间戳的方法①date.getTime()②+newDate()2.定时器console.log(111)setTimeout(()=>{console.log(222)},1000)console.log(333)console.log(111)setTimeout(()=>{console.log(222)},0)console.log(333)这两段代码打印结果分......
  • 使用钉钉Stream模式和API实现简单的考勤效果
    前期准备创建企业/组织。通讯录->右上角人型标志->创建或加入企业/团队。教程组织绑定考勤机。录入人脸信息。通讯录->更多->智能办公硬件->智能前台->选择对应的考勤机。为应用接入Stream模式重点:官方文档创建企业内部应用。进入钉钉开放平台->主管理员登录->右上角我的......
  • Java核心API——io类
     程序的输入与输出我们先来认识一下什么时在程序中输入与输出输入是从外界到程序中的方向,是我们程序用于获取外界信息的过程,是"读"的过程 输出是从程序到外界的方法,是我们程序向外界发送信息的过程,是"写"的过程java.io.InputStream与OutputStream输入流与输出流这......
  • Shopee虾皮api python获取商品买家评论数据信息
    此api接口可用于获取虾皮平台商品买家评论信息,目前land参数支持id、vn、my、th、sg、ph、tw(印尼、越南、马来、泰国、新加坡、菲律宾、台湾)。若有需要,请点击文末链接联系我们。详细采集页面如下https://shopee.tw/%E9%99%8D%E5%83%B9%E5%85%8D%E9%81%8B%E4%B8%AD%F0%9F%94%A5......
  • Shopee虾皮api python获取虾皮购物平台的商品数据信息 数据采集
    虾皮购物(英语:Shopee)是一个电商平台,总公司设在新加坡,归属于SeaGroup(之前称之为Garena),该企业于2009年由李小冬(ForrestLi)创办。虾皮购物于2015年初次在新加坡推出,现阶段已拓展到马来西亚、泰国、印度尼西亚、越南和菲律宾。虾皮购物为全球华人地区的客户提供线上购物和销售......
  • 【API渗透】资料集合
    今天给大家分享一些非常优质的API渗透测试学习资源。主要包含以下内容:API概述及其分类API渗透测试优质文章API渗透资料聚合项目国外免费的API安全课程API渗透检查列表ChecklistAPI测试字典开源API安全靶场常用API渗透测......
  • Ruby Web服务开发:构建高效RESTful API的秘诀
    标题:RubyWeb服务开发:构建高效RESTfulAPI的秘诀Ruby作为一种灵活、高效的编程语言,通过其丰富的库和框架,为开发Web服务提供了强大的支持。本文将深入探讨如何在Ruby中开发Web服务,特别是RESTfulAPI。我们将从基础概念讲起,逐步深入到框架选择、路由配置、控制器编写、模型设......
  • API 的多版本管理,如何在 Apifox 中操作?
    开放API是技术团队向外部提供服务和数据的关键手段。随着业务的发展和技术的更新,API也需要不断进行版本迭代。这种迭代通常是为了满足市场需求,优化现有功能,增加新特性,或者修复漏洞。在多个版本共存的情况下,团队需要确保每个版本都能满足不同用户的需求。例如,某些用户可能......