nlohmann库(C++)对json的读写增删改查
官网:Releases · nlohmann/json (github.com)直接上代码:
#include <iostream>
#include "nlohmann/json.hpp"
#include <fstream>
using json = nlohmann::json;
int main()
{
//写
json out = {
{"pi",3.141},
{"happy",true},
{"name","Niels"},
{"nothing",nullptr},
{"list",{1,0,"2"}},
{"object0",{{"everything",42}}},
{"object1",{
{"currency","USD"},
{"value",42.99}
}}
};
std::ofstream o("0.json");
//o << std::setw(4) << out << std::endl; //格式化输出
o << out.dump(4) << std::endl; //格式化输出
//读
std::ifstream i("0.json");
json myJSON;
i >> myJSON;
std::cout << myJSON.dump(4) << std::endl;
//查
std::cout << myJSON["list"] << std::endl; //查具体键的值
for (auto i = myJSON.begin(); i != myJSON.end(); i++) //查根目录的所有键。myJSON["object1"]查object1的所有键
{
std::cout << "key:" << i.key() << std::endl;
}
//增
myJSON["pi2"] = 3.1415;
myJSON["happy2"] = false;
myJSON["list2"] = { "str",20 };
myJSON["object2"] = { {"currency","RMB"},{"value",233.1} };
std::cout << std::setw(4) << myJSON << std::endl;
//改
myJSON["pi2"] = 5.15;
myJSON["list"] = 5; //改数组的第2个元素
myJSON["object2"]["value"] = 230; //改object2的键value的值
std::cout << std::setw(4) << myJSON << std::endl;
//删
myJSON.erase("pi2"); //删根目录的pi2键值对
myJSON["object2"].erase("value"); //删object2目录的value键值对
std::cout << myJSON.dump(4) << std::endl;
} 楼主说的很详细,我正好需要,谢谢您 正是我要找的资源 这个对JSON有原子操作了。 楼主说的很详细,我正好需要,谢谢您 牛啊,牛啊,34K starts!!!{:1_893:} 这个还是蛮有用的,感谢 正在学习,感谢分享 键值支持中文吗{:1_904:} 这个,fastjson等等,有什么比较的优缺点吗
页:
[1]