分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Newtonsoft.Json 序列化 排除指定字段或只序列化指定字段

发布时间:2023-09-06 02:25责任编辑:彭小芳关键词:暂无标签
using Newtonsoft.Json;using Newtonsoft.Json.Serialization;using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for LimitPropsContractResolver/// </summary>public class LimitPropsContractResolver : DefaultContractResolver{ ???string[] props = null; ???bool retain; ???/// <summary> ???/// 构造函数 ???/// </summary> ???/// <param name="props">传入的属性数组</param> ???/// <param name="retain">true:表示props是需要保留的字段 ?false:表示props是要排除的字段</param> ???public LimitPropsContractResolver(string[] props, bool retain = true) ???{ ???????//指定要序列化属性的清单 ???????this.props = props; ???????this.retain = retain; ???} ???protected override IList<JsonProperty> CreateProperties(Type type, ???MemberSerialization memberSerialization) ???{ ???????IList<JsonProperty> list = ???????base.CreateProperties(type, memberSerialization); ???????//只保留清单有列出的属性 ???????return list.Where(p => ???????{ ???????????if (retain) ???????????{ ???????????????return props.Contains(p.PropertyName); ???????????} ???????????else ???????????{ ???????????????return !props.Contains(p.PropertyName); ???????????} ???????}).ToList(); ???}}

  调用代码:

var jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
???????????????????string[] props = { "operationRemark", "managerCode", "checkRemark" }; //排除掉,不能让前端看到的字段。为true的话就是只保留这些字段
???????????????????jSetting.ContractResolver = new LimitPropsContractResolver(props, false);

???????????????????jsonStr = JsonConvert.SerializeObject(slboe, jSetting);

Newtonsoft.Json 序列化 排除指定字段或只序列化指定字段

原文地址:https://www.cnblogs.com/Jerseyblog/p/10078278.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved