排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术
分类:
.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返回
public class MyJsonResult : ActionResult
{
JsonSerializerSettings jsonSerializerSettings;
public object data;
public MyJsonResult(object data, JsonSerializerSettings jsonSerializerSettings = null)
{
this.jsonSerializerSettings = jsonSerializerSettings;
this.data = data;
}
public override void ExecuteResult(ActionContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
HttpResponse response = context.HttpContext.Response;
response.ContentType = "application/json;charset=utf-8";
string jsonstr = "";
if (jsonSerializerSettings != null)
{
jsonstr = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSerializerSettings);
}
else
{
jsonstr = JsonConvert.SerializeObject(data, Formatting.Indented);
}
response.WriteAsync(jsonstr);
}
}然后为了方便使用在APIBaseController(自己写的webapi的父类,方便添加一些共用的代码)中加入代码
[NonAction]
public virtual MyJsonResult MyJson(object data, JsonSerializerSettings serializerSettings=null)
{
MyJsonResult myJsonResult = new MyJsonResult(data, serializerSettings);
return myJsonResult;
}截个图方便看:

然后就可以很方便的使用了
使用方法和微软自带的一样

效果如下:

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