Saltar al contenido

acceder a elementos de nlohmann json

Solución:

El siguiente enlace explica las formas de acceder a elementos en JSON. En caso de que el enlace salga del alcance, aquí está el código

#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';
     }
 }

En caso de que alguien más esté todavía buscando la respuesta … Simplemente puede acceder a los contenidos utilizando el mismo método que para escribir en un nlohmann::json objeto. Por ejemplo, para obtener valores de json en la pregunta:

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

solo haz:

nlohmann::json jsonData = nlohmann::json::parse(your_json);
std::cout << jsonData["active"] << std::endl;    // returns boolean
std::cout << jsonData["list1"] << std::endl;     // returns array

Si el "objList" era solo un objeto, puede recuperar sus valores simplemente por:

std::cout << jsonData["objList"]["key1"] << std::endl;    // returns string
std::cout << jsonData["objList"]["key2"] << std::endl;    // returns array

Pero desde "objList" es una lista de pares clave / valor, para acceder a sus valores use:

for(auto &array : jsonData["objList"]) {
    std::cout << array["key1"] << std::endl;    // returns string
    std::cout << array["key2"] << std::endl;    // returns array
}

El ciclo se ejecuta solo una vez considerando "objList" es una matriz de tamaño 1.

Espero que ayude a alguien

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *