json11详细使用教程,持续更新!(代码片段)

CodeBowl CodeBowl     2023-01-13     109

关键词:

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.

git教程_持续更新(代码片段)

Git教程更新12/14/20175:21:57PM更新11/22/20176:27:24PM写在前面,在heroku上部署了pythonweb应用,迎合大众,所有操作都是在Ubuntu上操作。由于git版本管理没有掌握好,在Ubuntu和Windows上面的命令有一定的不同,造成了迥异的报错。现整理归... 查看详情

pikachu靶场超详细通关教程(持续更新中~)(代码片段)

pikachu靶场通关详解一、靶场介绍二、靶场配置三、靶场实战3.1暴力破解漏洞3.1.1暴力破解攻击&暴力破解漏洞概述3.1.2暴力破解漏洞测试流程3.1.3基于表单的暴力破解攻击(基于burpsuite)3.1.4暴力破解之不安全的验证码分析---onclient... 查看详情

sql基础详细(持续更新)(代码片段)

sql基础详细(持续更新)SQL基础一、查询基础语句查询语句的语法格式Select*from表名where条件;具体演示//创建一个学生成绩表createtableStudent_grade(St_Numint,St_Classvarchar(200),St_Namevarchar(64),St_Gradefloat);//添加数据insertintoStudent_gradevalues(1,1 查看详情

教程:windows10下如何安装使用多版本tensorflow2.x/pytorch/paddlepaddle的gpu版本[和cuda的安装及问题详解]亲测可行详细和持续更新(代码片段)

【强烈建议收藏的干货】更新概述:1.待定其它用到的:1.anaconda包与环境的管理注意:单独安装cudatoolkit的指定版本需要加-cconda-forge:【推荐先安装cudatoolkit的指定版本然后再安装深度学习框架】condainstallcudatoolkit=11.2-cconda-forgeco... 查看详情

lvgl|lvglv8教程(lvgl中文文档教程,开始更新lvglv8.x文档教程,超详细!)(代码片段)

lvgl官方的教程是英文的,这个是我在做项目时根据lvgl官方文档做出来的lvgl中文文档(持续更新维护),不仅仅只是生硬照搬lvgl官方文档的翻译,同时总结了我们在实际开发中遇到的各种细节,让这个文档更加适合... 查看详情

如何使用unity制作微信小游戏,微信小游戏制作方案最新完整详细教程来袭持续更新(代码片段)

前言Unity实战篇|Unity制作微信小游戏,最新详细教程来袭【持续更新】一、方案特点二、技术原理三、转换案例四、安装与使用方法4.1查阅推荐的引擎版本,安装时选择WebGL组件4.2Node官网安装长期稳定版4.3查阅小游... 查看详情

如何使用unity制作微信小游戏,微信小游戏制作方案最新完整详细教程来袭持续更新(代码片段)

前言Unity实战篇|Unity制作微信小游戏,最新详细教程来袭【持续更新】一、方案特点二、技术原理三、转换案例四、安装与使用方法4.1查阅推荐的引擎版本,安装时选择WebGL组件4.2Node官网安装长期稳定版4.3查阅小游... 查看详情

如何使用unity制作微信小游戏,微信小游戏制作方案最新完整详细教程来袭持续更新(代码片段)

前言Unity实战篇|Unity制作微信小游戏,最新详细教程来袭【持续更新】一、方案特点二、技术原理三、转换案例四、安装与使用方法4.1查阅推荐的引擎版本,安装时选择WebGL组件4.2Node官网安装长期稳定版4.3查阅小游... 查看详情

如何使用unity制作微信小游戏,微信小游戏制作方案最新完整详细教程来袭持续更新(代码片段)

前言Unity实战篇|Unity制作微信小游戏,最新详细教程来袭【持续更新】一、方案特点二、技术原理三、转换案例四、安装与使用方法4.1查阅推荐的引擎版本,安装时选择WebGL组件4.2Node官网安装长期稳定版4.3查阅小游... 查看详情

如何使用unity制作微信小游戏,微信小游戏制作方案最新完整详细教程来袭持续更新(代码片段)

前言Unity实战篇|Unity制作微信小游戏,最新详细教程来袭【持续更新】一、方案特点二、技术原理三、转换案例四、安装与使用方法4.1查阅推荐的引擎版本,安装时选择WebGL组件4.2Node官网安装长期稳定版4.3查阅小游... 查看详情

vue教程(持续更新中)(代码片段)

VUE教程目录1.VUE简介1-1.技术发展的过程:2.使用VUE框架2-1.构建你的第一个VUE程序2-2.VUE核心原理2-3.VUE组件2-4.工程结构1.VUE简介https://cn.vuejs.org/index.htmlVue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式框架。与其... 查看详情

visualstudio图形调试器详细使用教程(基于directx11)(代码片段)

前言对于DirectX程序开发者来说,学会使用VisualStudioGraphicsDebugger(图形调试器)可以帮助你全面了解渲染管线绑定的资源和运行状态,从而确认问题所在。现在就以我所掌握的图形调试经验来进行展开描述。下面的教程基于VisualStudi... 查看详情

git最全教程(持续更新)(代码片段)

文章目录一、git代理1.查看代理2.设置代理结尾一、git代理1.查看代理查看全局代理gitconfig--global--gethttp.proxygitconfig--global--gethttps.proxy查看局部代理gitconfig--local--gethttp.proxygitconfig--local--gethttps.proxy2.设置代理设置全局代理gitconfig- 查看详情

jackson解析json详细教程(代码片段)

点赞再看,动力无限。微信搜「程序猿阿朗」。本文Github.com/niumoo/JavaNotes和未读代码博客已经收录,有很多知识点和系列文章。JSON对于开发者并不陌生,如今的WEB服务、移动应用、甚至物联网大多都是以JSON作为数据... 查看详情

charles抓包工具实战教程(每晚持续更新中,预计9.17日更新完)(代码片段)

...弱网测试环境(弱网:网络不好的情况,或者实现2g,3g情况)能使用Charles的断点构建一场的测试场景(针对特殊测试场景,通过修改请求参数以及修改返回参数)文章介绍Charles介绍Charles安装和配置Charles 查看详情

it保姆级❤️开发测试环境搭建教程大集合热门技术+工具类(持续更新)(代码片段)

目录一、Linux服务器安装JDK8二、Linux服务器安装JDK11三、LinuxCentOS服务器安装Maven环境四、LinuxCentOS服务器安装Git环境五、LinuxCentOS服务器安装Python3.8环境六、LinuxCentOS服务安装Docker实战七、LinuxCentOS服务器安装Mysql数据库八、LinuxCent... 查看详情

最详细的个人博客教程搭建教程,最快5分钟快速搭建简约风格博客(代码片段)

...新一到两篇)傻瓜式一站式教你用githubpages来搭建博客,详细记录全过程,人人都能搭博客。开始先看下博客整体效果。点击在线预览我的博客支持特性简约风格博客PoweredByJekyll博客文章搜索自定义社交链接网站访客统计GoogleAnal... 查看详情

intellijidea详细配置和使用教程(转)(代码片段)

 http://blog.csdn.net/m_m254282520/article/details/78900238 关闭IntellijIDEA自动更新在File->Settings->Appearance&Behavior->SystemSettings->Updates下取消Automaticallycheckupdatesfor勾选&n 查看详情