[json] JSON for Modern C++
有幸能接触到这个,这是我遇到的使用最方便的json了,效率没研究过!
简单了使用了下,感觉非常好用,记录下:
要使用这个json,只需要使用json.hpp就行,放入自己的工程里,但是我这里是安装过的,为了其他项目也能使用!
环境: Mac OS X 10.12.6, Xcode(Version 8.3.3 (8E3004b))
安装:
brew tap nlohmann/json
brew search nlohmann
brew info nlohmann/json/nlohmann_json
brew install nlohmann/json/nlohmann_json
安装就是第1,4两句, 等待安装完成就行!
开发: 新建一个c++控制台程序,添加以下代码:
//
// main.cpp
// hello
//
// Created by zcm on 2019/2/18.
// Copyright © 2019年 zcm. All rights reserved.
//#include <iostream>
#include <vector>
#include "nlohmann/json.hpp"using namespace std;
using json = nlohmann::json;int main(int argc, const char * argv[]) {json j2 = {{"pi", 3.141},{"happy", true},{"name", "Niels"},{"nothing", nullptr},{"answer", {{"everything", 42}}},{"list", {1, 0, 2}},{"object", {{"currency", "USD"},{"value", 42.99}}}};cout << j2.dump() << endl;// this writing looks goodauto j = R"({"happy": true,"pi": 3.141,"arr": [1, 4, 6]})"_json;cout << j << endl;j = json::parse("{ \"happy\": false, \"pi\": 3.141 }");j["pi"] = 3.666; // 修改键值j.emplace("pi2", 3.5); // 如果键不存在, 则添加j["add"] = {{"pi", 4.5}, {"p", 6}};cout << j << endl;for(auto& i : j.items()) // 遍历键值对{cout << i.key() << " : " << i.value() << endl;}if(j.find("pi") != j.end()) // 键存在cout << j["pi"] << endl;cout << j.count("add") << endl; // count()返回1表示键存在, 否则不存在vector<int> v {1, 5, 7};json j3(v); // 通过vector初始化jsoncout << j3 << endl;return 0;
}
项目配置,增加:
运行结果:
{"answer":{"everything":42},"happy":true,"list":[1,0,2],"name":"Niels","nothing":null,"object":{"currency":"USD","value":42.99},"pi":3.141}
{"arr":[1,4,6],"happy":true,"pi":3.141}
{"add":{"p":6,"pi":4.5},"happy":false,"pi":3.666,"pi2":3.5}
add : {"p":6,"pi":4.5}
happy : false
pi : 3.666
pi2 : 3.5
3.666
1
[1,5,7]
Program ended with exit code: 0
注意: 必须开启c++11 编译选项
======================================
再补充说明下,上图:
[json] JSON for Modern C++相关推荐
- java 对象转json json转对象
java 对象转json json转对象 import com.alibaba.fastjson.JSON;/*** * @title: fastjson * @author: wll* @since ...
- 报错解决:fatal error: json/json.h: No such file or directory
晚上在做编译原理作业的时候遇到了报错: ASTNodes.h:6:23: fatal error: json/json.h: No such file or directory#include < ...
- 解决Ubuntu16.04 fatal error: json/json.h: No such file or directory
参考博客 错误产生 安装json-c库之后,根据GitHub上面的readme文件链接到json-c库时出现以下错误: SDMBNJson.h:9:23: fatal error: json/json ...
- Newtonsoft.Json(Json.Net)学习笔记
Newtonsoft.Json 在Vs2013中就有自带的: 下面是Json序列化和反序列化的简单封装: /// <summary>/// Json帮助类/// </summary& ...
- C/C++由字符串转JSON/JSON转字符串/数组解析/数组添加
字符串转成JSON(其中str为字符串) 1 2 3 4 5 Json::Reader Reader; Json::Value DevJson; Reader.parse(str,DevJson); ...
- powershell /遍历/psobject/字符串转换Json/json数组操作
读取json文档 $json = (Get-Content "C:\HDDList.json" -Raw) | ConvertFrom-Json $select=$json.Con ...
- C#如何Json转字符串;字符串转Json;Newtonsoft.Json(Json.Net)
什么是JSON C#如何Json转字符串 字符串转Json Newtonsoft.Json(Json.Net)学习笔记(转) 转载于:https://www.cnblogs.com/macT/p/90 ...
- html解释json,json 解析
这种json怎么解析?[ "1", "2", "3", "4" ] 就是个数组,但json格式化居然显示为合理的. [ ...
- fastjson 判断是否包含_Fastjson, Gson, org.json.JSON三者对于JSONObject及JSONArray的判断
1.Fastjson 我们通常在已知格式的情况下直接使用JSONObject,JSONArray,但是如果遇到需要判断格式呢? try{ Object object=JSON.parse(a);if ...
- Newtonsoft.Json Json.NET - Newtonsoft
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
最新文章
- git清空工作区和暂存区
- 计算机应用基础在powerpoint中,计算机应用基础PowerPoint习题1
- Spring:设置日志依赖项
- leetcode979. 在二叉树中分配硬币(dfs)
- android emulator虚拟设备分析第三篇之pipe上的qemud service
- TPAMI 2021 华为诺亚悉尼大学陶大程团队提出多功能卷积,助力轻量级网络
- 优化 Go 中的 map 并发存取
- 如何不显示index.php,tp如何隐藏index.php
- python中怎么调整代码字体格式_PyCharm中代码字体大小调整方法
- Oracle 同音字查询,汉字的演变过程100字,汉字的演变图片
- RaspberrIPCam – Full HD IP Camera based on Raspberry Pi
- 智能芯片与系统基础知识(AI芯片)
- [校招] 英文句子单词反转 - 哔哩哔哩 2020
- 学习——学习能力是最重要的能力
- [宅]最近3个月的宅生活
- 计算机键盘复制键,键盘按键设置复制粘贴的方法
- 如何搭建一个自己的音乐播放器-使用腾讯云轻量应用服务器搭建YesPlayMusic网易云播放器
- 量子计算机量子信息研讨会,2015全国量子信息与量子计算机前沿研讨会在我校召开...
- 智能三子棋——保姆级教学。
- 高斯拉普拉斯卷积核去除噪声
热门文章
- 让Windwos Server 2008 R2 SP1的FTP真正能访问
- freebsd点到点的ipsec ***
- 如何不部署Keras / TensorFlow模型
- python交互式和文件式_使用Python创建和自动化交互式仪表盘
- 泰坦尼克数据集预测分析_探索性数据分析-泰坦尼克号数据集案例研究(第二部分)
- koa2异常处理_读 koa2 源码后的一些思考与实践
- 袋装决策树_袋装树是每个数据科学家需要的机器学习算法
- leetcode 368. 最大整除子集(dp)
- linux渗透测试_渗透测试:选择正确的(Linux)工具栈来修复损坏的IT安全性
- php amazon-s3_推荐亚马逊电影-一种协作方法