c++11 json解析库nlohmann/json.hpp使用方法

 

json for modern c++是一个德国大牛nlohmann写的.

地址 https://github.com/nlohmann/json 

只有一个头文件 json.hpp

使用时,直接#include "json.hpp"

再using namespace nlohmann; 

就可以用了。比腾讯的什么垃圾RapidJSON好了不知道一百倍。

解析字符串的方法是:

1. 在字符串末尾添加 _json

using namespace nlohmann;

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

 

2.明确解析

string jsonStr = R"({"happy": true, "pi": 3.141, "ren":"good"})";
	
//第2个参数是错误处理,第3个参数是不throw exception
nlohmann::json j3 = json::parse(jsonStr, nullptr, false);

if (j3.is_discarded())
{
	printf("json::parse error!\n");
	return -1;
}

获取值的方法

 

if (j3["ren"].is_string())
	string renStr = j3["ren"];


bool happy = j3["happy"].get<bool>();

用is_string()来进行判断,避免此key为空的情况,会报异常导致程序挂掉。

同样还有 is_number_integer()   is_array() 等等

 

生成json字符串

	nlohmann::json j3;
	j3["hash"] = "abcdefg";
	j3["from"] = 0;
	j3["to"]   = 10;
	
	auto jarray = nlohmann::json::array();
	jarray.emplace_back(j3);
	auto str = jarray.dump();

 

 

更多使用方法请参考:

https://blog.csdn.net/fengxinlinux/article/details/71037244

https://blog.csdn.net/forrid/article/details/78867679

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边闲人2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值