MALOUDA-PSA 2024-02-24 07:43 采纳率: 91%
浏览 3
已结题

下面代码69-72行一共插入了4次,可是在结果里面只是插入了一次

下面代码69-72行一共插入了4次,可是在结果里面只是插入了一次

//这是申明
bool insertjsonsample(const string& id,const string& pid);


111 bool insert2json(json& jstarget, const json& jssrc) {
112 
113     //for (json::iterator it = jssrc.begin(); it!=jssrc.end(); ++it){
114     //for (json::iterator it = object1.begin(); it!=object1.end(); ++it){
115 
116     for (auto it = jssrc.begin(); it!=jssrc.end(); ++it){
117         string key = it.key();
118         json value = it.value();
119     cout << "begin to merge json" << endl;
120 
121     //for (auto& [key, value] : object1.items()){
122         jstarget[key]=value;
123         //jstarget["key"]=value;
124     }
125     return true;
126 
127 }



int main(){
......
59     json object1 = R"({"ProjName":"*********************hn","FileName":"eeee.catpart", "ProjNumber":30, "JpgFile":"kk.jpg","Comments": "cdr     for employee","ProjType": "graphic design","ProjState": 1,  "version": 1,"CreateTime": "20230728","UpdateTime": "20230608","id": 8, "pid": 6    })"_json;
 60     /*cout << "begin to merge json" << endl;
 61     for (json::iterator it = object1.begin(); it!=object1.end(); ++it){
 62         auto& key = it.key();
 63         auto& value = it.value();
 64     cout << "begin to merge json" << endl;
 65         
 66     //for (auto& [key, value] : object1.items()){
 67         j[key]=value;
 68     }*/
 69     insert2json(j, object1);
 70     insert2json(j, object1);
 71     insert2json(j, object1);
 72     insert2json(j, object1);
 73     out << setw(4) << j.dump();

  • 写回答

2条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-02-24 07:43
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如需一对一服务私聊我哦
    该代码中的 insert2json 函数只是简单地将 jssrc 中的每个键值对插入到 jstarget 中,由于 json 的 key 必须唯一,所以在插入相同的键值对时只会保留最后一个。因此,在该代码中插入了四次,但仅保留了最后一次插入的键值对。 示例代码:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include "json.hpp"
    using json = nlohmann::json;
    bool insert2json(json& jstarget, const json& jssrc) {
        for (auto it = jssrc.begin(); it != jssrc.end(); ++it) {
            std::string key = it.key();
            json value = it.value();
            jstarget[key] = value;
        }
        return true;
    }
    int main() {
        json j;
        json object1 = R"({"ProjName":"*********************hn","FileName":"eeee.catpart","ProjNumber":30,"JpgFile":"kk.jpg","Comments":"cdr for employee","ProjType":"graphic design","ProjState":1,"version":1,"CreateTime":"20230728","UpdateTime":"20230608","id":8,"pid":6})"_json;
        insert2json(j, object1);
        insert2json(j, object1);
        insert2json(j, object1);
        insert2json(j, object1);
        std::cout << std::setw(4) << j.dump() << std::endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月26日
  • 创建了问题 2月24日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行