Click here to Skip to main content
15,890,282 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionUsing nlohmann JSON to insert more data Pin
Kiran Satish26-Aug-22 7:03
Kiran Satish26-Aug-22 7:03 
I have a json file genrated in python from another system that needs to be read/updated in another MFC application. I can successfully read the existing data from the json file using nlohmann json add-in. For example, the file consists of two data fields with one field having any array of two subfields as below

C++
{
  "city_data":[
     {
       "t":"m",
       "l":[12.0,10.3,0.0,1.0]
     },
     {
       "t":"l",
       "l":[10.1,20.37,0.0,1.0]
     },
     {
       "t":"l",
       "l":[47.82,4.63,0.0,1.0]
     },
     {
       "t":"m",
       "l":[67.66,43.33,0.0,1.0]
     }
   ],
   "map_data":"JZDKZTCaTyWQymUwmk8lkMplMJpPJZDKZTCaTyWQymUwmk/8/+n8AVAZ1WCxk8rYAAAAASUVORK5CYII="
}

The "map_data" is basically base64 encoded png image.
I would like to add more entries into "city_data" field as {"t":"x","l":[0.0,0.0,0.0,0.0]} while the "map_data" stays the same. Then I can write the json object into a new file with updates.

To read the json file,
C++
std::ifstream f(file);
json data = json::parse(f);

To retreive "city_data" and then its type and location
C++
json& cityInfo = data["city_data"];
for (unsigned int i = 0; i < cityInfo.size(); i++)
        {
            json& cityType = cityInfo[i];
            std::string ctyTyp = cityType["t"];
            json& cityLoc = cityType["l"];
            std::float_t x = cityLoc[0];
            std::float_t y = cityLoc[1];
            // do something with the retrieved values      
        }
//To retreive map data
ofstream outfile;
outfile.open(m_strFolderPath + m_strFileName + ".png", ofstream::binary);
std::string mapFrame = data["map_data"];
string temp = base64_decode(mapFrame );
outfile.write(temp.c_str(), temp.size());
outfile.close();
f.close();

Any suggestions on how to insert new city_data fields into the nlohmann JSON object? or a way to create a new json file like in above format?
thanks
PKNT


modified 26-Aug-22 14:17pm.

AnswerRe: Using nlohmann JSON to insert more data Pin
Mircea Neacsu26-Aug-22 8:53
Mircea Neacsu26-Aug-22 8:53 
QuestionQuestion About CToolTipCtrl Pin
ForNow24-Aug-22 8:33
ForNow24-Aug-22 8:33 
AnswerRe: Question About CToolTipCtrl Pin
Victor Nijegorodov24-Aug-22 21:53
Victor Nijegorodov24-Aug-22 21:53 
GeneralRe: Question About CToolTipCtrl Pin
ForNow24-Aug-22 22:19
ForNow24-Aug-22 22:19 
GeneralRe: Question About CToolTipCtrl Pin
Victor Nijegorodov24-Aug-22 23:56
Victor Nijegorodov24-Aug-22 23:56 
GeneralRe: Question About CToolTipCtrl Pin
ForNow25-Aug-22 1:36
ForNow25-Aug-22 1:36 
GeneralRe: Question About CToolTipCtrl Pin
Victor Nijegorodov25-Aug-22 2:18
Victor Nijegorodov25-Aug-22 2:18 
GeneralRe: Question About CToolTipCtrl Pin
Victor Nijegorodov25-Aug-22 2:44
Victor Nijegorodov25-Aug-22 2:44 
GeneralRe: Question About CToolTipCtrl Pin
ForNow25-Aug-22 3:01
ForNow25-Aug-22 3:01 
QuestionProperly document C++ code for use in Intellisense ? Pin
Maximilien22-Aug-22 5:14
Maximilien22-Aug-22 5:14 
AnswerRe: Properly document C++ code for use in Intellisense ? Pin
Richard MacCutchan22-Aug-22 21:28
mveRichard MacCutchan22-Aug-22 21:28 
QuestionNeed insight as to how VS2008 parses vcproj files Pin
charlieg21-Aug-22 8:45
charlieg21-Aug-22 8:45 
AnswerRe: Need insight as to how VS2008 parses vcproj files Pin
Mircea Neacsu21-Aug-22 10:35
Mircea Neacsu21-Aug-22 10:35 
GeneralRe: Need insight as to how VS2008 parses vcproj files Pin
charlieg22-Aug-22 0:56
charlieg22-Aug-22 0:56 
GeneralRe: Need insight as to how VS2008 parses vcproj files Pin
Mircea Neacsu22-Aug-22 1:45
Mircea Neacsu22-Aug-22 1:45 
GeneralRe: Need insight as to how VS2008 parses vcproj files Pin
charlieg22-Aug-22 1:53
charlieg22-Aug-22 1:53 
AnswerRe: Need insight as to how VS2008 parses vcproj files Pin
charlieg28-Mar-23 9:40
charlieg28-Mar-23 9:40 
QuestionDialogBox fuction not executing its procedure [SOLVED] Pin
coco24318-Aug-22 23:39
coco24318-Aug-22 23:39 
AnswerRe: DialogBox fuction not executing its procedure Pin
Richard MacCutchan19-Aug-22 0:38
mveRichard MacCutchan19-Aug-22 0:38 
GeneralRe: DialogBox fuction not executing its procedure Pin
coco24319-Aug-22 1:14
coco24319-Aug-22 1:14 
GeneralRe: DialogBox fuction not executing its procedure Pin
Richard MacCutchan19-Aug-22 1:47
mveRichard MacCutchan19-Aug-22 1:47 
GeneralRe: DialogBox fuction not executing its procedure Pin
coco24319-Aug-22 2:03
coco24319-Aug-22 2:03 
GeneralRe: DialogBox fuction not executing its procedure Pin
Richard MacCutchan19-Aug-22 2:29
mveRichard MacCutchan19-Aug-22 2:29 
GeneralRe: DialogBox fuction not executing its procedure Pin
coco24319-Aug-22 2:57
coco24319-Aug-22 2:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.