JavaScriptConverter

public class DatePartsConverter : JavaScriptConverter
{
  public override IEnumerable<Type> SupportedTypes
  {
    get { yield return typeof(DateTime); }
  }

  public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
  {
    if (obj is DateTime)
    {
      DateTime date = (DateTime)obj;

      var json = new Dictionary<string, object>();

      json["year"] = date.Year;
      json["month"] = date.Month;
      json["day"] = date.Day;

      return json;
    }

    return null;
  }

  public override object Deserialize(IDictionary<string, object> json, Type type, JavaScriptSerializer serializer)
  {
    if (type == typeof(DateTime))
    {
      object year, month, day;

      json.TryGetValue("year", out year);
      json.TryGetValue("month", out month);
      json.TryGetvalue("day", out day);

      if ((year is int)
       && (month is int)
       && (day is int))
        return new DateTime((int)year, (int)month, (int)day);
    }

    return null;
  }
}
时间: 2024-10-24 18:36:07

JavaScriptConverter的相关文章

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

【C#公共帮助类】JsonHelper 操作帮助类, 以后再也不用满地找Json了,拿来直接用

 四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换json包.json转换object动态类.DataReader转换为Json.DataSet转换为Json.DataTable转成Json.Datatable转换为Json .格式化字符型日期型布尔型.过滤特殊字符等 using System; using System.Collections.Ge

【重要更新】Senparc.Weixin SDK v4.3.3升级说明

为了更好地适应微信越来越快的API更新速度和越来越多的API数量,本次Senparc.Weixin.dll v4.3.3对一些通用功能进行了深度的重构. 本次更新同时影响以下所有Senparc.Weixin相关版本的dll: Senparc.Weixin.dll 升级到 v4.3.3 Senparc.Weixin.MP.dll 升级到 v13.3.0(重要) Senparc.Weixin.MP.MvcExtension.dll 升级到 v1.4.1 Senparc.Weixin.Open 升级到

JSON序列化那点事儿

JSON序列化那点事儿 序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer是微软官方提供的一种方法,所以如果你用的是asp.net mvc,在Action中如果你返回的语句写的是”return Json(xxx);“,其实你用的就是JavaScriptSerializer方式.现在更多的人选择的是Json.net,因为它为用户提供了更加清晰地使用体

利用&lt;JavascriptSerializer类&gt; 进行Json对象的序列化和反序列化

1. 首先, JavascriptSerializer类所在名空间: using System.Web.Script.Serialization; 2. 相关的3篇文章, 标记下: 使用JavaScriptSerializer进行JSON序列化 注意:    是复杂对象. JSON是Javascript中常用的数据格式,然而,在.NET 2.0中没有内置序列化JSON的类,原因估计是当时Ajax尚未兴起.后来就有人写了一个Json.NET类库..NET 3.5新增了一个把对象序列化为JSON字符

C# JsonHelper 操作辅助类,拿来直接用

四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换json包.json转换object动态类.DataReader转换为Json. DataSet转换为Json.DataTable转成Json.Datatable转换为Json .格式化字符型日期型布尔型.过滤特殊字符等 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

JavaScriptSerializer中日期序列化问题解决方案

JavaScriptSerializer中日期序列化问题解决方案 直接进入主题: class Student { public int age { get; set; } public DateTime? date { get; set; } public string name { get; set; } } 当点击的时候: private void button1_Click(object sender, EventArgs e) { System.Web.Script.Serializat

.Net深入实战系列—JSON序列化那点事儿

序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer是微软官方提供的一种方法,所以如果你用的是asp.net mvc,在Action中如果你返回的语句写的是”return Json(xxx);“,其实你用的就是JavaScriptSerializer方式.现在更多的人选择的是Json.net,因为它为用户提供了更加清晰地使用体验,清晰在哪?本文主要就