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)