Search code examples
c++json

accessing elements from nlohmann json


My JSON file resembles this

{
  "active" : false,
  "list1" : ["A", "B", "C"],
  "objList" : [
    {
     "key1" : "value1",
     "key2" : [ 0, 1 ]
    }
   ]
}

Using nlohmann json now, I've managed to store it and when I do a dump jsonRootNode.dump(), the contents are represented properly.

However I can't find a way to access the contents.

I've tried jsonRootNode["active"], jsonRootNode.get() and using the json::iterator but still can't figure out how to retrieve my contents.

I'm trying to retrieve "active", the array from "list1" and object array from "objList"


Solution

  • The following link explains the ways to access elements in the JSON. In case the link goes out of scope here is the code

    #include <json.hpp>
    
     using namespace nlohmann;
    
     int main()
     {
         // create JSON object
         json object =
         {
             {"the good", "il buono"},
             {"the bad", "il cativo"},
             {"the ugly", "il brutto"}
         };
    
         // output element with key "the ugly"
         std::cout << object.at("the ugly") << '\n';
    
         // change element with key "the bad"
         object.at("the bad") = "il cattivo";
    
         // output changed array
         std::cout << object << '\n';
    
         // try to write at a nonexisting key
         try
         {
             object.at("the fast") = "il rapido";
         }
         catch (std::out_of_range& e)
         {
             std::cout << "out of range: " << e.what() << '\n';
         }
     }