nlohmann库(C++)对json的读写增删改查

官网:Releases · nlohmann/json (github.com)

nlohmann库(C++)对json的读写增删改查 

#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"][1] = 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;
}

 

原文链接: https://www.cnblogs.com/xixixing/p/17140027.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    nlohmann库(C++)对json的读写增删改查

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/319433

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月24日 下午3:18
下一篇 2023年2月24日 下午3:18

相关推荐