<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ASP.NET Web API 2.1支持Binary JSON(Bson)

      ASP.NET Web API 2.1內建支持XML、JsonBson、form-urlencodedMiME type,今天重點介紹下BsonBSON是由10gen開發的一個數據格式,目前主要用于MongoDB中,是MongoDB的數據存儲格式。BSON基于JSON格式,選擇JSON進行改造的原因主要是JSON的通用性及JSON的schemaless的特性。

      BSON主要會實現以下三點目標:

      1.更快的遍歷速度

      對JSON格式來說,太大的JSON結構會導致數據遍歷非常慢。在JSON中,要跳過一個文檔進行數據讀取,需要對此文檔進行掃描才行,需要進行麻煩的數據結構匹配,比如括號的匹配,而BSON對JSON的一大改進就是,它會將JSON的每一個元素的長度存在元素的頭部,這樣你只需要讀取到元素長度就能直接seek到指定的點上進行讀取了。

      2.操作更簡易

      對JSON來說,數據存儲是無類型的,比如你要修改基本一個值,從9到10,由于從一個字符變成了兩個,所以可能其后面的所有內容都需要往后移一位才可以。而使用BSON,你可以指定這個列為數字列,那么無論數字從9長到10還是100,我們都只是在存儲數字的那一位上進行修改,不會導致數據總長變大。當然,在MongoDB中,如果數字從整形增大到長整型,還是會導致數據總長變大的。

      3.增加了額外的數據類型

      JSON是一個很方便的數據交換格式,但是其類型比較有限。BSON在其基礎上增加了"byte array"數據類型。這使得二進制的存儲不再需要先base64轉換后再存成JSON。大大減少了計算開銷和數據大小。當然,在有的時候,BSON相對JSON來說也并沒有空間上的優勢,比如對{"field":7},在JSON的存儲上7只使用了一個字節,而如果用BSON,那就是至少4個字節(32位)

       

      在服務端啟用BSON  

      public static class WebApiConfig

      {

      public static void Register(HttpConfiguration config)

      {

      config.Formatters.Add(new BsonMediaTypeFormatter());

       

      // Other Web API configuration not shown...

      }

      }

      如果client的請求是"application/bson",webapi將使用BSON的序列化器。 可以將其它的media type也使用BSON就行序列化,如下:  

      static async Task RunAsync()

      {

      using (HttpClient client = new HttpClient())

      {

      client.BaseAddress = new Uri("http://localhost");

       

      // Set the Accept header for BSON.

      client.DefaultRequestHeaders.Accept.Clear();

      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/bson"));

       

      // Send GET request.

      result = await client.GetAsync("api/books/1");

      result.EnsureSuccessStatusCode();

       

      // Use BSON formatter to deserialize the result.

      MediaTypeFormatter[] formatters = new MediaTypeFormatter[] {

      new BsonMediaTypeFormatter()

      };

       

      var book = await result.Content.ReadAsAsync<Book>(formatters);

      }

      }

      序列化原生的類型

         BSON的文檔都是key/value的集合,BSON的規范并沒有定義只返回一個原生值的語法,如返回一個intstring類型的值。

      為了解決這個問題BsonMediaTypeFormatter將原生的類型特殊對待,在序列化前,將其轉為key/value形式,key"Value".如下:

      public class ValuesController : ApiController

      {

      public IHttpActionResult Get()

      {

      return Ok(42);

      }

      }

      返回值:

      { "Value": 42 }

       

      當反序列化時,序列化器將數據轉為原始的值。當然如果使用其它的BSON序列化器,如果服務端返回這樣類型的數據,BSON解析器需要處理這種情況。 

       

      https://visualstudiomagazine.com/articles/2014/05/01/implementing-binary-json-in-aspnet-web-api-2_1.aspx

      posted @ 2015-05-16 21:53  張善友  閱讀(4486)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品亚洲综合第一页| 豆国产97在线 | 亚洲| 人妻蜜臀久久av不卡| 国产呦交精品免费视频| 日韩不卡二区三区三区四区| 国产成人精品久久综合| 午夜国产精品福利一二| 在线观看人成视频免费| 国产亚洲午夜高清国产拍精品| 广水市| 精品国产污污免费网站入口 | 精品超清无码视频在线观看| 国产高清一区二区三区视频 | 亚洲国产av区一区二| 国产精品毛片一区二区| 精品国产女同疯狂摩擦2| 亚洲一区二区三区日本久久| 美女黄网站人色视频免费国产 | 北安市| 亚洲三级香港三级久久| 又粗又紧又湿又爽的视频| 国产粉嫩高中无套进入| 国产成人无码av一区二区| 中文国产不卡一区二区| 久久av无码精品人妻出轨| 激情综合色区网激情五月| 精品一区二区三区不卡| 欧美成人片一区二区三区| 久操热在线视频免费观看| 中文字幕人妻日韩精品| 性色欲情网站| 尤物蜜芽国产成人精品区| av色国产色拍| 国产精品毛片一区二区| 韩国无码av片在线观看| 116美女极品a级毛片| 商洛市| 久久夜色国产噜噜亚洲av| 制服丝袜美腿一区二区| 精品无码成人片一区二区| 久久中精品中文字幕入口|