You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to save a std::map<int, std::string> into a json, and then the json is saved in a file.
nlohmann::json db;
db = mymap;
std::ofstream output_file(filename);
output_file << std::setw(4) << db << std::endl;
The problem is the result of the json:
I'm expecting this kind of output: { 1 : "one", 2 : "two"}
However, the result is: [ [1, "one"], [2, "two"]]
So, when in other program I'm trying to read that file and try to save it in a json for doing the conversion to std::map again, I'm having the next error:
error: ambiguous overload for ‘operator=’ (operand types are ‘std::map<int, std::__cxx11::basic_string<char> >’ and ‘nlohmann::json {aka nlohmann::basic_json<>}’)
I've been looking in similar errors like #607, but I don't find a solution.
I've tried to build the map manually but the output is the same. Maybe I'm missing something.
Thanks in advance
The text was updated successfully, but these errors were encountered:
The library does not convert the keys of the std::map to strings automatically, and under the hood a list of pairs is the closest we can get inside JSON. You need to make the conversion yourself, e.g. with code like
for (auto it = mymap.begin(); it != mymap.end(); ++it)
{
db[std::to_string(it->first)] = it->second;
}
Hi,
I'm trying to save a std::map<int, std::string> into a json, and then the json is saved in a file.
The problem is the result of the json:
I'm expecting this kind of output:
{ 1 : "one", 2 : "two"}
However, the result is:
[ [1, "one"], [2, "two"]]
So, when in other program I'm trying to read that file and try to save it in a json for doing the conversion to std::map again, I'm having the next error:
I've been looking in similar errors like #607, but I don't find a solution.
I've tried to build the map manually but the output is the same. Maybe I'm missing something.
Thanks in advance
The text was updated successfully, but these errors were encountered: