应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

net core webapi运用自定义json格式

11099人阅读 2019/11/13 22:54 总访问:5179884 评论:0 收藏:2 手机
分类: .NET Core

接上一篇

net core api json相关,全局配置,时间格式化,首字母小写等:http://www.tnblog.net/aojiancc2/article/details/2829

单独提一块出来写,不然篇幅太多,容易杂乱


想要使用自定义的json格式,其实在控制器中很方便的可以实现:

第二个参数就是这个,但是webapi没有json这个写法

JsonResult是要继承Controller才有的,webapi是继承的ControllerBase,但是我不想让webapi去继承controller会浪费一些效率,因为我们只对外提供数据,不需要和view什么打交道没有必要用到Controller里边多余的东西,所以我们可以使用自定义一个json返回即可


自定义json返回

  1. public class MyJsonResult : ActionResult
  2. {
  3.     JsonSerializerSettings jsonSerializerSettings;
  4.     public object data;
  5.     public MyJsonResult(object data, JsonSerializerSettings jsonSerializerSettings = null)
  6.     {
  7.         this.jsonSerializerSettings = jsonSerializerSettings;
  8.         this.data = data;
  9.     }
  10.     public override void ExecuteResult(ActionContext context)
  11.     {
  12.         if (context == null)
  13.         {
  14.             throw new ArgumentNullException("context");
  15.         }
  16.         HttpResponse response = context.HttpContext.Response;
  17.         response.ContentType = "application/json;charset=utf-8";
  18.         string jsonstr = "";
  19.         if (jsonSerializerSettings != null)
  20.         {
  21.             jsonstr = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSerializerSettings);
  22.         }
  23.         else
  24.         {
  25.             jsonstr = JsonConvert.SerializeObject(data, Formatting.Indented);
  26.         }
  27.         response.WriteAsync(jsonstr);
  28.     }
  29. }

然后为了方便使用在APIBaseController(自己写的webapi的父类,方便添加一些共用的代码)中加入代码

  1. [NonAction]
  2. public virtual MyJsonResult MyJson(object data, JsonSerializerSettings serializerSettings=null)
  3. {
  4.     MyJsonResult myJsonResult = new MyJsonResult(data, serializerSettings);
  5.     return myJsonResult;
  6. }

截个图方便看:

然后就可以很方便的使用了

使用方法和微软自带的一样

效果如下:





欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

net core webapi版本控制

webapi的版本控制好处很多,要实现其实也比较简单。在webapi中根据不同的版本创建文件夹。然后在不同的api里边添加不同的路...

net core webapi路由

如下我们可以通过路由传递两个参数请求地址参考如下: https://localhost:5001/api/home/aojiancc2/2622最后两个可以作为参...

.net core webapi json相关,全局配置,时间格式化首字母小写等

在ConfigureServices中可以进行全局json配置,例如,全局处理一下事件格式问题services.AddMvc(option=> { //option.F...

net core webapi delete请求 错误 - 405.0 - Method Not Allowed

是因为被WebDAVModule模块限制了delete,put请求解决方法一:在iis中去干掉这个模块这样会全局影响所有网站解决方法二:单独...

.net core webapi post接口传递参数

我希望有个如你一般的人,如山间清爽的风,如古城温暖的光,从清晨到夜晚,从山野到书房,只要最后是你就好传递一个参数:...

.net core webapi 使用swagger调试时传递一个参数问题

默认提供的参数没有加双引号不行的,加个双引号就行了

.net core webapi无法请求delete接口

是因为WebDAV模块造成的,你可以在windows添加和删除功能把iis里边的WebDAV模块全局删除,也可以独立的配置某个项目不需要...

.net core webapi添加mvc,webapi添加转换mvc

添加静态资源访问1:添加wwwroot文件夹 直接右键添加文件夹即可2:然后在Configure中调用UseStaticFiles方法 app.UseStati...

.net core webapi 报错 TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

在接收参数前面加上[FromQuery]即可。不然默认是frombody的,又是get请求所有会报错 public async Task<GeneralReturnM...

.net6net core webapi项目 使用 Newtonsoft.jsonNSON。 添加常用引用

第一步下载库:版本要和.net6匹配,一般.net6项目下载6.0.36即可。 install-package Microsoft.AspNetCore.Mvc.Newtonsoft...

json对象和json字符串的区别

JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样var str2 = { "name": ...

对象转json

/// <summary> /// 对象转json /// </summary> public static string ToJson(object jsonObject) ...

来!!!今天玩 json

别怪我懒,其实我是真的懒///<summary> ///List转成json ///</summary> ///<typeparamname="T&quot...

webapijson格式

创建WebApi项目时出现的xml格式,每次都去转换比较麻烦在Global设置全局输出json格式://直接xml干掉为json GlobalConfigu...