最好用的json库,也许是JSON for modern C++ 的最佳实践!解决nlohmann json中文无法解析的问题!

GitHub开源项的地址:https://github.com/nlohmann/json

json for modern c++是一个德国大牛nlohmann写的,该版本的json有以下特点:

1.直观的语法。
2.整个代码由一个头文件组成json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。
3.使用c++11标准编写。
4.使用json 像使用STL容器一样。
5.STL和json容器之间可以相互转换。

如何使用?

只需要带一个文件即可。

#include <json.hpp>
//...
using json = nlohmann::json;

详细的使用在GitHub中已经有了,相当于一个使用手册,也推荐大家直接看它自带的。

链接: 使用手册.

注意事项

本人在使用的过程中,发现在反序列化的时候,遇到中文会出现bug。

正常使用

#include"json.hpp"
#include <iostream>0
using json = nlohmann::json;

int main()
{
    json j = "{ \"happy\": true, \"pi\": 3.141 }"_json;
    std::cout<<j["happy"]<<std::endl;
    return 0;
}

在这里插入图片描述

解析中文

#include"json.hpp"
#include <iostream>0
using json = nlohmann::json;

int main()
{
    json j = "{ \"happy\": \"中文\", \"pi\": 3.141 }"_json;
    std::cout<<j["happy"]<<std::endl;
    return 0;
}

在这里插入图片描述

原因定位及解决方案

原因为:
在windows下默认编码格式为GBK,nlohmann::json不支持。
在这里插入图片描述

解决方案:

暂无,求教

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值