亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Jil,高效的json序列化和反序列化庫(kù)

 更新時(shí)間:2017年02月15日 11:11:49   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇Jil,高效的json序列化和反序列化庫(kù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

谷歌的potobuf不說(shuō)了,它很牛B,但是對(duì)客戶端對(duì)象不支持,比如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è)午餐的構(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)類型對(duì)象必須要有無(wú)參的構(gòu)造函數(shù)或者只有一個(gè)參數(shù)的構(gòu)造函數(shù)。

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

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

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"; //時(shí)間戳
  DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  //說(shuō)明下,時(shí)間格式為13位后面補(bǔ)加4個(gè)"0",如果時(shí)間格式為10位則后面補(bǔ)加7個(gè)"0" 
  long lTime = long.Parse(pt + (pt.Length == 13 ? "0000" : "0000000"));
  var dtResult = dtStart.Add(new TimeSpan(lTime)); //得到轉(zhuǎn)換后的時(shí)間 
  Console.WriteLine(dtResult);

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

  var _time = DateTime.Now.Ticks;
  Console.WriteLine(DateTime.Now.ToString());
  Console.WriteLine("當(dāng)前時(shí)間轉(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)于客戶端時(shí)間戳的js處理,可參閱此文:js時(shí)間戳和c#時(shí)間戳互轉(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客戶端獲取時(shí)間戳:

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

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

相關(guān)文章

  • cnblogs csdn 代碼運(yùn)行框?qū)崿F(xiàn)代碼

    cnblogs csdn 代碼運(yùn)行框?qū)崿F(xiàn)代碼

    大家用cnblogs,csdn博客發(fā)布技術(shù)文檔的時(shí)候,可以用下面的代碼實(shí)現(xiàn)運(yùn)行功能。當(dāng)然大家看了源碼就會(huì)發(fā)現(xiàn)其實(shí)方法還有很多。有更好的方法就發(fā)布一下啊。
    2009-11-11
  • JS獲取圖片實(shí)際寬高及根據(jù)圖片大小進(jìn)行自適應(yīng)

    JS獲取圖片實(shí)際寬高及根據(jù)圖片大小進(jìn)行自適應(yīng)

    圖片實(shí)際寬高使用js進(jìn)行獲取以及根據(jù)圖片大小進(jìn)行自適應(yīng),此功能個(gè)人感覺(jué)比較實(shí)用,在此貢獻(xiàn)出來(lái),希望對(duì)大家有所幫助
    2013-08-08
  • 使用js實(shí)現(xiàn)動(dòng)態(tài)背景

    使用js實(shí)現(xiàn)動(dòng)態(tài)背景

    這篇文章主要為大家詳細(xì)介紹了使用js實(shí)現(xiàn)動(dòng)態(tài)背景,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • js獲取瀏覽器和屏幕的各種寬度高度

    js獲取瀏覽器和屏幕的各種寬度高度

    本文主要介紹了js獲取瀏覽器和屏幕的各種寬度高度的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Selenium執(zhí)行JavaScript腳本的方法示例

    Selenium執(zhí)行JavaScript腳本的方法示例

    這篇文章主要介紹了Selenium執(zhí)行JavaScript腳本的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 前端面試知識(shí)點(diǎn)錦集(JavaScript篇)

    前端面試知識(shí)點(diǎn)錦集(JavaScript篇)

    這篇文章主要為大家分享了前端面試知識(shí)點(diǎn)錦集JavaScript篇,細(xì)致的給出了每個(gè)js面試知識(shí)點(diǎn)的答案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript Array擴(kuò)展實(shí)現(xiàn)代碼

    JavaScript Array擴(kuò)展實(shí)現(xiàn)代碼

    最近看了一下developer.mozilla.org里的東西,發(fā)現(xiàn)它為Array對(duì)象添加了不少generic method,趕得上Prototype的熱心程度。
    2009-10-10
  • 微信 jssdk 簽名錯(cuò)誤invalid signature的解決方法

    微信 jssdk 簽名錯(cuò)誤invalid signature的解決方法

    這篇文章主要介紹了微信 jssdk 簽名錯(cuò)誤invalid signature的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • js實(shí)現(xiàn)七夕表白彈幕效果 jQuery實(shí)現(xiàn)彈幕技術(shù)

    js實(shí)現(xiàn)七夕表白彈幕效果 jQuery實(shí)現(xiàn)彈幕技術(shù)

    這篇文章主要介紹了js實(shí)現(xiàn)七夕表白彈幕效果,jQuery實(shí)現(xiàn)彈幕技術(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • EditPlus 正則表達(dá)式 實(shí)戰(zhàn)(3)

    EditPlus 正則表達(dá)式 實(shí)戰(zhàn)(3)

    這篇文章主要介紹了EditPlus 正則表達(dá)式 實(shí)戰(zhàn)(3)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12

最新評(píng)論