json11详细使用教程,持续更新!

Posted CodeBowl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json11详细使用教程,持续更新!相关的知识,希望对你有一定的参考价值。

json

JSON的全称是”javascript Object
Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

json这里就不详细介绍了,看这个链接就可
json详解

json11

json11是一个轻量级的C++11库, 提供JSON的序列化和反序列化功能.
之前在解析json数据的时候,尝试了好几个json库,最终决定使用json11,主要有以下几个原因:

  1. json的通用功能
  2. 可以像使用C++类一样使用
  3. 中文不乱码,这是我选择这个库的主要原因

json11的github地址:json11.

基本使用

直接举自带单元测试test.cpp中的例子:

    const string simple_test =
        R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})";

    string err;
    const auto json = Json::parse(simple_test, err);

    std::cout << "k1: " << json["k1"].string_value() << "\\n";
    std::cout << "k3: " << json["k3"].dump() << "\\n";

    for (auto &k : json["k3"].array_items()) {
        std::cout << "    - " << k.dump() << "\\n";
    }

Json::parse可以解析string字符串生成Json对象,dump()则将Json对象格式化为字符串形式。

Json类提供了多种构造函数,用来构造Json对象:
    const Json obj = Json::object({
        { "k1", "v1" },
        { "k2", 42.0 },
        { "k3", Json::array({ "a", 123.0, true, false, nullptr }) },
    });

一些json11的具体操作

json11解析数组,并基于范围循环遍历

json

"( {"k1":"v1", "k2":42, "k3":["a",123,true,false,null]} )"

遍历其中的数组


	conststd::string simple_test = R"( {"k1":"v1", "k2":42, "k3":["a",123,true,false,null]} )";
	std::string err; 
        constauto json = json11::Json::parse(simple_test, err); 
                  
        for (auto &k : json["k3"].array_items() ) 
        { 
            std::cout <<"    - " << k.dump() <<"\\n"; 
        }“”





参考资料

https://www.cnblogs.com/cknightx/p/7717539.html.

以上是关于json11详细使用教程,持续更新!的主要内容,如果未能解决你的问题,请参考以下文章

超详细的 MySQL 学习教程(多实例附练习视频讲解持续更新)

超详细的 MySQL 学习教程(多实例附练习视频讲解持续更新)

如何使用 Unity制作微信小游戏,微信小游戏制作方案 最新完整详细教程来袭持续更新

如何使用 Unity制作微信小游戏,微信小游戏制作方案 最新完整详细教程来袭持续更新

如何使用 Unity制作微信小游戏,微信小游戏制作方案 最新完整详细教程来袭持续更新

如何使用 Unity制作微信小游戏,微信小游戏制作方案 最新完整详细教程来袭持续更新