JSON for Modern C++發布3.1版本

來源:互聯網
上載者:User

JSON for Modern C++發布3.1版本

JSON for Modern C++ 3.1版本增加了對Universal Binary JSON(UBJSON)規範和JSON合并補丁(Merge Patch)的支援。

UBJSON是支援Modern C++幾種格式之一,它可以減少編碼值的大小,加快解碼速度。除了UBJSON,CBOR和MessagePack也同樣支援Modern C++。 每種格式都有不同的優勢,選擇哪種格式取決於你所需要的資料類型。在這三種格式中,UBJSON是唯一完整二進位格式的,這就意味著所有的JSON值都可以轉換成UBJSON,並且所有的UBJSON值也都能轉換成JSON。

JSON合并補丁格式的作用是聲明兩個JSON文檔之間的差異。這種格式是與HTTP PATCH一起使用的,它能夠對資源進行部分更新,而HTTP PUT則用於對資源進行完全替換。JSON合并補丁允許你只對JSON的一部分進行定義,並且將其合并到伺服器端。這比使用基本的JSON補丁格式更加方便,基本的JSON補丁格式依賴於一組操作的規範來對原始的JSON文檔進行修補。例如:

// a JSON valuejson j_document = R"({  "a": "b",  "c": {    "d": "e",    "f": "g"  }})"_json;// a JSON patch (RFC 6902)json j_patch_1 = R"([  { "op": "replace", "path": "/a", "value": "z" },  { "op": "remove", "path": "/f"}])"_json;// a JSON Merge patch (RFC 7386)json j_patch_2 = R"({  "a":"z",  "c": {    "f": null  }})"_json;

JSON for Modern C++庫旨在提供一種直觀的文法來對JSON資料進行處理,就好像該JSON資料是頭等(first-class)資料類型一樣。例如,你能通過以下語句來對一個對象進行初始化:

json j2 = {  {"pi", 3.141},  {"happy", true},  {"name", "Niels"},  {"nothing", nullptr},  {"answer", {    {"everything", 42}  }},  {"list", {1, 0, 2}},  {"object", {    {"currency", "USD"},    {"value", 42.99}  }}}

同樣地,你可以通過將__json附加至json代碼後邊來對JSON代碼進行解碼:

auto j2 = R"(  {    "happy": true,    "pi": 3.141  })"_json;

JSON for Modern C++另外的優點是易於整合,這要歸功於它可以被封裝於一個單獨的標頭檔json.hpp中,而不需要任何外部庫或依賴項。除此之外,它還聲稱能夠通過100%的代碼覆蓋單元測試,並且不存在記憶體流失。

查看英文原文:JSON for Modern C++ Reaches Version 3.1

本文永久更新連結地址:https://www.bkjia.com/Linux/2018-02/150999.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.