Fork me on GitHub

ASP.NET MVC中JSON.NET代替JavaScriptSerializer

使用JSON.NET 代替(The benefit of using JsonNetResult over the built in JsonResult is you get a better serializer (IMO [:)]) and all the other benefits of Json.NET like nicely formatted JSON text.)

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using Newtonsoft.Json;
using System.Web;
//http://stackoverflow.com/questions/15816319/what-does-asp-net-mvc-4-0-used-for-json-serialization
//http://stackoverflow.com/questions/7109967/using-json-net-as-default-json-serializer-in-asp-net-mvc-3-is-it-possible
//http://stackoverflow.com/questions/15738691/newtonsoft-json
//http://wingkaiwan.com/2012/12/28/replacing-mvc-javascriptserializer-with-json-net-jsonserializer/

/**
 * 版权所有 All Rights Reserved
 *
 * @author Irving_Zhou
 * @description ASP.NET MVC 使用Newtonsoft.Json
 * @date 2013年10月20日10:17:45
 * @version 1.0.0
 * @email zhouyongtao@outlook.com
 * @blog http://www.cnblogs.com/Irving/
 * @refer http://james.newtonking.com/archive/2008/10/16/asp-net-mvc-and-json-net
 */
namespace NRainel.Ajax
{
    public class JsonNetResult : ActionResult
    {
        /// <summary>
        /// 编码格式
        /// </summary>
        public Encoding ContentEncoding { get; set; }
        /// <summary>
        /// 请求头
        /// </summary>
        public string ContentType { get; set; }
        /// <summary>
        /// 请求数据
        /// </summary>
        public object Data { get; set; }
        /// <summary>
        /// 序列化转换器
        /// </summary>
        public JsonSerializerSettings SerializerSettings { get; set; }
        /// <summary>
        /// 序列化格式化
        /// </summary>
        public Formatting Formatting { get; set; }

        public JsonNetResult()
        {
            SerializerSettings = new JsonSerializerSettings();
        }

        /// <summary>
        /// 重写执行上下文
        /// </summary>
        /// <param name="context"></param>
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            HttpResponseBase response = context.HttpContext.Response;
            response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json";
            if (ContentEncoding != null)
                response.ContentEncoding = ContentEncoding;
            if (Data != null)
            {
                JsonTextWriter writer = new JsonTextWriter(response.Output) { Formatting = Formatting };
                JsonSerializer serializer = JsonSerializer.Create(SerializerSettings);
                serializer.Serialize(writer, Data);
                writer.Flush();
            }
        }
    }
}
复制代码

JS日期转换

复制代码
// 为 jQuery 扩展一个转换日期的方法
jQuery.extend(
            {
                toDate: function (date) {
                    var date = new Date(parseInt(date.substring(6)));
                    return date;
                },
                toDateString: function (jsDate) {
                    return "\/Date(" + jsDate.getTime() + "+0000)\/";
                }
            }
        );
复制代码

Refer:http://james.newtonking.com/archive/2008/10/16/asp-net-mvc-and-json-net

posted @   花儿笑弯了腰  阅读(1521)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示