2016-06-29 19 views
1

Meine JSON-Datei dies ähneltZugriff auf Elemente von nlohmann json

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

jetzt nlohmann json verwenden, habe ich es geschafft, es zu speichern, und wenn ich einen Dump jsonRootNode.dump() tun, wird der Inhalt richtig dargestellt.

Allerdings kann ich keinen Weg finden, um auf den Inhalt zuzugreifen.

Ich habe versucht jsonRootNode["active"], jsonRootNode.get() und mit der json::iterator aber immer noch nicht herausfinden, wie Sie meine Inhalte abrufen.

Ich versuche, aus "objList"

Antwort

4

Die folgenden link erläutert die Möglichkeiten "active", das Array von "list1" und Objekt Array abzurufen Elemente im JSON zuzugreifen. Falls der Link den Rahmen verlässt, ist der 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'; 
    } 
} 
+0

Danke, dass mir helfen! Können Sie den Code, den Sie beispielsweise für den Zugriff auf key2 verwendet haben, einfach hinter sich lassen? Sie können dieses Thema auch als gelöst markieren. –

+0

Gibt es keine Möglichkeit, sie in Zeichenfolgen umzuwandeln? :( –

+0

@BenjaminGoutfer Kein Problem :) –