版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tayuC/article/details/78185609
最近需要用C++实现JSON的序列化与反序列化,在网上苦苦找寻,一开始相中了Jsoncpp,下载下来苦苦编译啊,设置是真心头疼,对于我这个小白来说是真麻烦呀。各种大神的各种经验完全不管用,最后碰巧看到了这个德国大神的巨作。就是我送给你们的玩具啦~~
首先引用两个中文 博客,因为我英文较差,看中文还比较轻松一些。所以从一开始接触这个库就是靠的这两个大神指引道路的。
废话不多说了,那两个博客写的比较详细了,但是我感觉我还是的把我经常用到的功能列出来,也可以补充一下前辈没有说明的东西。
一、国际惯例,使用背景
在自己的项目中添加头文件
#include "json.hpp"
using namespace std;
using json = nlohmann::json;
完美~
using json = nlohmann::json
这句话是C++11的一个新特性。
二、从文件中读取多个json对象
从文件中读取多个JSON对象并把每个对象中的每个key读出来
json j;
ifstream ifile("logService.json");
if (ifile.fail()) {
cout << "..." << endl;
return 0;
}
string str;
while (!ifile.eof())
{
std::getline(ifile, str);
j = json::parse(str);
cout << setw(4) << j << endl;
cout << "++++++++++++++++++++++++++++++++";
for (json::iterator i = j.begin(); i != j.end(); ++i)
{
cout << "key:"<<i.key()<< endl;
}
}
JSON.hpp中支持了STL的语法,可以用迭代器。
Json文件中不可以有换行符\n