最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Jil,高效的json序列化和反序列化庫

 更新時間:2017年02月15日 11:11:49   投稿:jingxian  
下面小編就為大家?guī)硪黄狫il,高效的json序列化和反序列化庫。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

谷歌的potobuf不說了,它很牛B,但是對客戶端對象不支持,比如JavaScript就讀取不了。

Jil很牛,比Newtonsoft.Json要快很多,且支持客戶端,此處只貼代碼:

using Jil;
using System.Runtime.Serialization;

[Serializable]
 class Employee
 {
  //[JilDirective(Name = "cid")]
  public int Id { get; set; }
  [IgnoreDataMember]
  public string Name { get; set; }
  [DataMember(Name = "kkl")]
  public string Address { get; set; }
 
  public Employee() { } //必須要有一個午餐的構(gòu)造函數(shù)

  public Employee(int EmployeeId, string Name)
  {
  this.Id = EmployeeId;
  this.Name = Name;
  }
 }var jsonString = string.Empty;
  using (var output = new StringWriter())
  {
  JSON.Serialize(new Employee(666, "zhangsan"), output);
  Console.WriteLine(output);
  jsonString = output.ToString();
  }

  using (var input = new StringReader(jsonString))
  {
  //var result = JSON.DeserializeDynamic(jsonString);
  //var result = JSON.Deserialize<Employee>(jsonString);
  var result = JSON.Deserialize<Employee>(input);
  Console.WriteLine("id:{0},name:{1}", result.Id, result.Name);
  }

需要注意的是,反序列化的強(qiáng)類型對象必須要有無參的構(gòu)造函數(shù)或者只有一個參數(shù)的構(gòu)造函數(shù)。

Such a type should have one declared field or property, and default or single parameter constructor.

對于時間處理,默認(rèn)是ISO8601方式,可通過配置修改:

Options _jilOptions = new Options(
  dateFormat: DateTimeFormat.MillisecondsSinceUnixEpoch,
  includeInherited: true,
  serializationNameFormat: SerializationNameFormat.CamelCase
  );

  var output = JSON.Serialize(new
  {
  UserName = "jon",
  TradingPassword = "123456",
  ClientIp = "192.168.3.1",
  Origin = 1,
  time = DateTime.Now
  }, _jilOptions);
  Console.WriteLine(output);

  Console.WriteLine("----------------");

  var pt = "1459481266695"; //時間戳
  DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  //說明下,時間格式為13位后面補加4個"0",如果時間格式為10位則后面補加7個"0" 
  long lTime = long.Parse(pt + (pt.Length == 13 ? "0000" : "0000000"));
  var dtResult = dtStart.Add(new TimeSpan(lTime)); //得到轉(zhuǎn)換后的時間 
  Console.WriteLine(dtResult);

  Console.WriteLine("----------------");

  var _time = DateTime.Now.Ticks;
  Console.WriteLine(DateTime.Now.ToString());
  Console.WriteLine("當(dāng)前時間轉(zhuǎn)換后模式:---------------->");
  var dt = DateTime.FromBinary(_time); //635951023596206937【注意,此處與】
  Console.WriteLine(dt.ToLongDateString()); //2016年4月1日
  Console.WriteLine(dt.ToLongTimeString()); //10:12:39
  Console.WriteLine(dt.ToShortDateString()); //2016/4/1
  Console.WriteLine(dt.ToShortTimeString()); //10:12
  Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss")); //2016-04-01 10:12:39

輸入如下:

關(guān)于客戶端時間戳的js處理,可參閱此文:js時間戳和c#時間戳互轉(zhuǎn)方法(推薦)

var date = new Date(1459481266695);
Y = date.getFullYear() + '-';
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
D = date.getDate() + ' ';
h = date.getHours() + ':';
m = date.getMinutes() + ':';
s = date.getSeconds(); 
console.log(Y+M+D+h+m+s); 
VM307:9 2016-04-1 11:27:46

js客戶端獲取時間戳:

var dt= new Date().getTime(); 

以上這篇Jil,高效的json序列化和反序列化庫就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 原生js實現(xiàn)下拉框選擇組件

    原生js實現(xiàn)下拉框選擇組件

    這篇文章主要為大家詳細(xì)介紹了原生js實現(xiàn)下拉框選擇組件的開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • js中的for如何實現(xiàn)foreach中的遍歷

    js中的for如何實現(xiàn)foreach中的遍歷

    js中沒有foreach這個關(guān)鍵字,但是可以用var v in array來實現(xiàn)遍歷,下面有個不錯的示例,大家可以參考下
    2014-05-05
  • 最全面的JS倒計時代碼

    最全面的JS倒計時代碼

    這篇文章主要為大家詳細(xì)介紹了最全面的JS倒計時代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • javascript 內(nèi)存模型實例詳解

    javascript 內(nèi)存模型實例詳解

    這篇文章主要介紹了javascript 內(nèi)存模型,結(jié)合實例形式詳細(xì)分析了javascript 內(nèi)存模型相關(guān)概念、原理、操作技巧與注意事項,需要的朋友可以參考下
    2020-04-04
  • 一文帶你徹底搞懂JS中的Map與Set

    一文帶你徹底搞懂JS中的Map與Set

    Set是一種叫做集合的數(shù)據(jù)結(jié)構(gòu)(結(jié)構(gòu)和Array很像),Map是一種叫做字典的數(shù)據(jù)結(jié)構(gòu),這篇文章主要為大家詳細(xì)介紹了JavaScript中Map與Set用法與區(qū)別,需要的小伙伴可以參考下
    2023-11-11
  • JS邏輯運算符短路操作實例分析

    JS邏輯運算符短路操作實例分析

    這篇文章主要介紹了JS邏輯運算符短路操作,結(jié)合實例形式分析了javascript三個邏輯運算符短路操作的原理與使用技巧,需要的朋友可以參考下
    2018-07-07
  • JavaScript編寫一個貪吃蛇游戲

    JavaScript編寫一個貪吃蛇游戲

    本文主要介紹了JavaScript寫的一個貪吃蛇游戲的實例,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 33種Javascript 表格排序控件收集

    33種Javascript 表格排序控件收集

    收集的33個表格排序空間,需要的朋友可以參考下。自從選擇。
    2009-12-12
  • 詳解webpack自定義loader初探

    詳解webpack自定義loader初探

    這篇文章主要介紹了webpack自定義loader初探,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • js利用appendChild對<li>標(biāo)簽進(jìn)行排序的實現(xiàn)方法

    js利用appendChild對<li>標(biāo)簽進(jìn)行排序的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s利用appendChild對<li>標(biāo)簽進(jìn)行排序的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10

最新評論

华蓥市| 普宁市| 道孚县| 石楼县| 岳普湖县| 西宁市| 同仁县| 格尔木市| 武冈市| 崇阳县| 任丘市| 新源县| 房山区| 大邑县| 金沙县| 廊坊市| 喜德县| 余江县| 克什克腾旗| 登封市| 淮北市| 高雄市| 香港| 江都市| 昭觉县| 云霄县| 梓潼县| 晴隆县| 房产| 南阳市| 都江堰市| 潜山县| 定结县| 米脂县| 淅川县| 景宁| 海原县| 兴安县| 罗甸县| 吉林省| 花垣县|