json序列化_自己写的一个json序列化类

公司项目使用ASP.NET MVC框架时,对List集合序列化,前端获取的数据格式怪异。研究文档后,决定用NewtonJson重写Json方法,先定义类继承JsonResult,再在控制器中重写,后续用NewJson方法进行序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司最近项目用到asp.net的mvc框架,在使用过程中发现一个问题,对<,List这类集合进行序列化的时候,前端获取的数据格式非常怪异。

 [AjaxOnly] [HttpGet] public virtual JsonResult ListData() { ..... IEnumerable dataList = ListBll.List(MvcContext);、、 return Json(dataList); }

研究了mvc的文档后,决定对用大名鼎鼎的 NewtonJson重写Json方法,首先定义一个类,并继承JsonResult,代码如下:

using PageAdmin.Utils;namespace System.Web.Mvc{ //采用Newtonsoft.Json定义新的Jsonresult,默认的JsonResult采用微软自带的系列化,对IEnumerable类型数据序列化后格式混乱。 public class NewtonJson:JsonResult { public override void ExecuteResult(ControllerContext context) { if (context == null) throw new ArgumentNullException("context"); if (context.HttpContext == null || context.HttpContext.Response == null) return; context.HttpContext.Response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json"; if (ContentEncoding != null) context.HttpContext.Response.ContentEncoding = ContentEncoding; if (Data != null) context.HttpContext.Response.Write(JsonHelper.JsonParse(Data)); } internal static JsonResult Json(object data) { var jsonResult = new NewtonJson() { Data = data, JsonRequestBehavior = JsonRequestBehavior.AllowGet, ContentType = "application/json;charset=utf-8", }; return jsonResult; } }}

然后再控制器中重写Json方法。

 protected JsonResult NewJson(object data) { return NewtonJson.Json(data); }

以后凡是需要系列化的直接用NewJson方法即可。

c602dafaa3ad514e325949463f2803f0.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值