使用nlohmann json向指定JSON数组插入对象失败,求排查解决
JSON数组插入对象代码修复
问题背景
现有JSON内容:
{ "vis.DataSet": [], "backup": [] }
需要向vis.DataSet对应的数组中插入两个对象{"a":1,"b":2,"c":3}和{"a":4,"b":5},最终期望得到的JSON结构如下:
{ "vis.DataSet": [ { "a" : 1, "b" : 2, "c" : 3 }, { "a" : 4, "b" : 5 } ], "backup": [] }
错误代码
json srcJson = R"({ "vis.DataSet": [], "backup": [] })"_json; json objJson1 = R"({ "a" : 1, "b" : 2, "c" : 3 })"_json; json bojJson2 = R"({ "a" : 4, "b" : 5 })"_json; srcJson["vis.DataSet"].push_back[objJson1]; srcJson["vis.DataSet"].push_back[objJson2];
问题排查与修复
代码存在两处错误:
- 变量名拼写错误:第二个对象的变量名误写为
bojJson2,正确应为objJson2 - 函数调用语法错误:
push_back是成员函数,必须使用圆括号()传递参数,而非方括号[]
修复后的正确代码:
json srcJson = R"({ "vis.DataSet": [], "backup": [] })"_json; json objJson1 = R"({ "a" : 1, "b" : 2, "c" : 3 })"_json; json objJson2 = R"({ "a" : 4, "b" : 5 })"_json; srcJson["vis.DataSet"].push_back(objJson1); srcJson["vis.DataSet"].push_back(objJson2);
内容的提问来源于stack exchange,提问作者minjiew
相关产品推荐
相关产品推荐

