如何使用nlohmann-json向指定JSON数组添加元素?
向JSON数组data["user1"]["buy"]添加元素的方法
从你给出的代码来看,你使用的是nlohmann/json库(C++中常用的JSON处理库),向data["user1"]["buy"]这个数组添加元素可以通过以下几种方式实现:
方法一:构造元素对象后添加
先创建一个新的JSON对象,再用push_back()方法将其加入目标数组:
// 构造要添加的购买项 json new_buy_item = { {"id", 2003}, {"name", "some name9"}, {"price", 150}, {"available", 5}, {"category", "new_category"} }; // 向user1的buy数组追加元素 data["user1"]["buy"].push_back(new_buy_item);
方法二:直接在push_back中初始化元素
如果不需要复用这个元素,可以直接在push_back()里完成对象初始化,简化代码:
data["user1"]["buy"].push_back({ {"id", 2003}, {"name", "some name9"}, {"price", 150}, {"available", 5}, {"category", "new_category"} });
验证修改与保存
添加完成后,你可以通过size()方法确认数组长度变化,验证元素是否成功添加:
// 输出修改后的数组长度 std::cout << "user1的buy数组当前元素数量:" << data["user1"]["buy"].size() << std::endl;
如果需要将修改后的JSON写回文件,可使用以下代码:
// 打开文件并写入格式化后的JSON内容 std::ofstream output_file("updated_data.json"); output_file << data.dump(4); // dump(4)生成带4空格缩进的格式化JSON output_file.close();
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

