ASP.NET Core WebApi 返回统一格式参数(Json 中 Null 替换为空字符串)
发布日期:2021-09-08 15:09:09
浏览次数:23
分类:技术文章
本文共 2711 字,大约阅读时间需要 9 分钟。
业务场景:
统一返回格式参数中,如果包含 Null 值,调用方会不太好处理,需要替换为空字符串,示例:
{ "response":{ "code":200, "msg":"Remote service error", "result":null }}
替换为:
{ "response":{ "code":200, "msg":"Remote service error", "result":"" }}
具体实现:
using Microsoft.AspNetCore.Mvc;using Microsoft.AspNetCore.Mvc.Filters;using Newtonsoft.Json;using Newtonsoft.Json.Serialization;using System;using System.Collections.Generic;using System.Linq;using System.Reflection;public class WebApiResultMiddleware : ActionFilterAttribute{ public override void OnResultExecuting(ResultExecutingContext context) { if (context.HttpContext.Request.Path.HasValue) { if (context.HttpContext.Request.Path.Value.ToLower().IndexOf(".inside.") < 0) { if (context.Result is FileContentResult || context.Result is EmptyResult) { return; } if (context.Result is ObjectResult) { var objectResult = context.Result as ObjectResult; var settings = new JsonSerializerSettings() { ContractResolver = new NullToEmptyStringResolver(), DateFormatString = "yyyy-MM-dd HH:mm" }; context.Result = new JsonResult(new { data = objectResult.Value }, settings); } else { context.Result = new ObjectResult(new { data = new { } }); } } } }}public class NullToEmptyStringResolver : Newtonsoft.Json.Serialization.DefaultContractResolver{ protected override IListCreateProperties(Type type, MemberSerialization memberSerialization) { return type.GetProperties() .Select(p => { var jp = base.CreateProperty(p, memberSerialization); jp.ValueProvider = new NullToEmptyStringValueProvider(p); return jp; }).ToList(); }}public class NullToEmptyStringValueProvider : IValueProvider{ PropertyInfo _MemberInfo; public NullToEmptyStringValueProvider(PropertyInfo memberInfo) { _MemberInfo = memberInfo; } public object GetValue(object target) { object result = _MemberInfo.GetValue(target); if (result == null) result = ""; return result; } public void SetValue(object target, object value) { _MemberInfo.SetValue(target, value); }}
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/asp-net-core-webapi-json-convert-empty-string-instead-of-null.html,如需转载请自行联系原作者
转载地址:https://blog.csdn.net/weixin_34326429/article/details/90149664 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月17日 05时25分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Android】Activity生命周期
2019-04-26
【Android】Activity的四种launchMode
2019-04-26
【Android】Activity的task相关
2019-04-26
【Android】 Intent应用详解
2019-04-26
【Android】 Intent详解
2019-04-26
【Android】 常用的Intent
2019-04-26
Android中AsyncTask的简单用法
2019-04-26
【Android】 Android中Log调试详解
2019-04-26
【Android】Android中WIFI开发总结(一)
2019-04-26
【Android】Android中WIFI开发总结(二)
2019-04-26
【Android】Android之WiFi开发应用示例
2019-04-26
【Android】 Android adb常见问题整理
2019-04-26
【Android】 Android体系结构图
2019-04-26
【Android】 Android中spinner下拉列表的使用
2019-04-26
说说在 python 中,如何删除左右两边不需要的字符
2019-04-26
说说如何管理 Spring Boot 中的起步依赖
2019-04-26
说说如何在 Linux 中,新建账号
2019-04-26
说说如何在 linux 中搭建 FTP 服务
2019-04-26
说说 Python 的正则表达式
2019-04-26
说说 Spring Boot 属性配置源的加载顺序
2019-04-26