当前位置: 首页 > news >正文

Newtonsoft.Json设置忽略某些字段

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace TestProject1
{/// <summary>/// 输出json时,设置忽略哪些字段不要/// </summary>public class PropsContractResolver : DefaultContractResolver{/// <summary>/// 要忽略的字段集合,Key传入字段名称/// </summary>public Dictionary<string, bool> IgnoreProps { get; set; }public PropsContractResolver(Dictionary<string, bool>  ignoreProps){IgnoreProps = ignoreProps;}protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization){IList<JsonProperty> list = base.CreateProperties(type, memberSerialization);//只保留清单有列出的属性return list.Where(p =>{//去掉的字段//string[] ignoreProps = { "Password", "Encrypted_salt" };// if (p.PropertyName.Equals("Password"))//if (ignoreProps.Contains(p.PropertyName))//{//    //去掉字段//    return false;//}if (p.PropertyName!=null && IgnoreProps.ContainsKey(p.PropertyName)){return false;//去掉字段}return true;//保留字段}).ToList();}}
}
  [TestMethod]public async Task TestMethod1(){//注册接口var builder = WebApplication.CreateBuilder();ServicesRegister.Register(builder);var app = builder.Build();         AppServicesHelpter.App = app;IAh_userBll userBll = AppServicesHelpter.GetServices<IAh_userBll>();Ah_user ah_User = await userBll.GetAsync(130042493512608);//忽略字段JsonSerializerSettings settings = new JsonSerializerSettings();var props = new Dictionary<string, bool>() ;props.Add("Password",false);props.Add("Encrypted_salt", false);props.Add("Extend1", false);props.Add("Extend2", false);props.Add("P", false);props.Add("PageSize", false);props.Add("Creator", false);props.Add("Create_time", false);    settings.ContractResolver = new PropsContractResolver(props);string json=Newtonsoft.Json.JsonConvert.SerializeObject(ah_User, settings);}

Ah_user

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using WebProjectNet7.DataBaseEntity.BaseEntity;namespace WebProjectNet7.DataBaseEntity.Entity
{/// <summary>/// 实体,用户表/// </summary>[Table("ah_user")]public partial class Ah_user : BaseModel{/// <summary>/// 用户名称/// </summary>public string? User_name { get; set; }/// <summary>/// 用户编号(员工编号)/// </summary>public string? User_no { get; set; }/// <summary>/// 性别 /// 1为男,2为女/// </summary>public byte? Sex { get; set; }/// <summary>/// 出生日期/// </summary>public string? Birth_date { get; set; }/// <summary>/// 电话/// </summary>public string? Tel { get; set; }/// <summary>/// 邮箱/// </summary>public string? Email { get; set; }/// <summary>/// 证件类型/// EnumIDType,枚举/// </summary>public byte? Id_type { get; set; }/// <summary>/// 证件号/// </summary>public string? Id_number { get; set; }/// <summary>/// 角色Id,多个,用,分割/// </summary>public string?  Role_id { get; set; }/// <summary>/// 角色名称/// </summary>public string? Role_name { get; set; }/// <summary>/// 部门Id/// </summary>public long? Organization_id { get; set; }/// <summary>/// 部门名称/// </summary>public string? Organization_name { get; set; }/// <summary>/// 账号/// </summary>public string? Account { get; set; }/// <summary>/// 密码/// </summary>public string? Password { get; set; }/// <summary>/// 密码加盐/// </summary>public string? Encrypted_salt { get; set; }/// <summary>/// 启用状态 1=启用,2=禁用/// </summary>public byte? Status { get; set; }/// <summary>/// 创建时间/// </summary>public DateTime? Create_time { get; set; }/// <summary>/// 创建人/// </summary>public long?  Creator { get; set; }/// <summary>/// 修改时间/// </summary>public DateTime? Update_time { get; set; }/// <summary>/// 修改人/// </summary>public long? Updator { get; set; }}
}

返回结果:

{"User_name": "武松","User_no": "1001","Sex": null,"Birth_date": "2024年01月03日","Tel": "15874584685","Email": "10717@qq.com","Id_type": 1,"Id_number": "51053692484156685","Role_id": "146759246945184","Role_name": "吏部尚书","Organization_id": 130041939348384,"Organization_name": "大理寺","Account": "wusong","Status": 1,"Update_time": "2024-02-19T17:54:41.847","Updator": 130042493512608,"Id": 130042493512608
}

参考文章:
https://www.tnblog.net/aojiancc2/article/details/2828

http://www.lryc.cn/news/303222.html

相关文章:

  • 【c++每天一题】跳跃游戏
  • 【C# 中抓取包含多个屏幕内容的整个桌面】
  • 数据库管理-第152期 Oracle Vector DB AI-04(20240220)
  • uniapp app端水印组件封装 一次引入版
  • 最新Unity游戏主程进阶学习大纲(2个月)
  • NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
  • 基于Spring Boot的多级缓存系统设计
  • k8s-配置与存储-配置管理
  • c语言实现bellman-ford算法
  • socket与rpc的区别
  • 10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝
  • 代码随想录算法训练营第三八天 | 动态规划
  • 【ubuntu2004安装N卡驱动】
  • 使用 Docker 安装 Kibana 8.4.3
  • 基于python社交网络大数据分析系统的设计与实现
  • 【设计模式】23种设计模式笔记
  • 编程笔记 Golang基础 009 标识符和关键字
  • vue3中mockjs模拟获取数据
  • element ui 添加自定义方法
  • Hive UDF
  • python Opencv 中绘制图
  • imazing软件安全吗?2024中文永久免费许可证
  • JavaScript:防抖与节流
  • 在Win系统部署WampServer并实现公网访问本地服务【内网穿透】
  • 面试经典150题——单词规律
  • RK3568平台开发系列讲解(Linux系统篇)container_of
  • 回显服务器
  • c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)
  • 亿道丨三防平板电脑厂商哪家好丨麒麟系统三防平板PAD
  • 什么是hash冲突?以及解决方案