Angenommen, ich empfange eine JSON-formatierte Zeichenfolge aus dem Netzwerk und möchte sie in einer Boost-Eigenschaftsstruktur dekodieren. Was ist der beste Weg, das zu tun?Wie dekodiert man eine std :: string formatierte JSON in eine Boost-Property-Struktur?
1
A
Antwort
1
Für ein einfaches Beispiel zu schaffen, läßt vermuten wir einen String im Code haben die Zeichenfolge darzustellen, dass Sie aus dem Netzwerk mit folgendem Inhalt erhalten werden:
{
"Test": "string",
"Test2":
{
"inner0": "string2",
"inner1": "string3",
"inner2": "1234"
}
}
So ist der Code für die Interpretation, dass als ein String ist die folgende:
#include <boost/property_tree/json_parser.hpp>
#include <iostream>
#include <sstream>
int main()
{
std::stringstream buffer("{ \"Test\": \"string\", \"Test2\": { \"inner0\": \"string2\", \"inner1\": \"string3\", \"inner2\": \"1234\" } }");
std::cout << buffer.str() << std::endl;
boost::property_tree::ptree pt;
boost::property_tree::json_parser::read_json(buffer, pt);
std::string test2_inner0_str = pt.get<std::string>("Test2.inner0");
int test2_inner2_value = pt.get<int>("Test2.inner2");
std::cout << test2_inner0_str << std::endl;
std::cout << test2_inner2_value << std::endl;
}
Drucke:
{ "Test": "string", "Test2": { "inner0": "string2", "inner1": "string3", "inner2": "1234" } }
string2
1234
+0
Ausgezeichnete Probe. +1 – sehe
Verwandte Themen
- 1. Extjs wie dekodiert man eine JSON-Zeichenkette?
- 2. Elm, JSON-Decoder: Wie dekodiert man eine leere Zeichenfolge?
- 3. Wie dekodiert man einen Base64 String?
- 4. Wie dekodiert man eine CSR-Datei?
- 5. Wie man JSON schlecht formatierte (Zitatschlüssel) repariert?
- 6. Wie dekodiert man Base64 String zu NSString in ios?
- 7. Wie erstellt man eine formatierte lokalisierte Zeichenkette?
- 8. Wie liest man den gesamten Stream in eine std :: string?
- 9. Simple: Wie initialisiert man eine neue unordered_map <std :: string, std :: string> * (Zeiger) in C++?
- 10. Wie dekodiert man eine URL-Kodierungskette auf Windows Mobile?
- 11. Wie man eine sortierte std :: list von std :: pair in eine std :: map konvertiert
- 12. Wie dekodiert man ein JSON-Objekt mit dem Rust-Attributnamen?
- 13. Wie sollte ich eine Std :: String an eine Funktion übergeben?
- 14. In R Wie konvertiert man eine formatierte Ortszeit in Epoche?
- 15. Wie dekodiert man einen String, der mit JavaScriptStringEncoded kodiert ist?
- 16. Konvertieren von void * in eine std :: string
- 17. eine Zeichenfolge in einem formatierte Datum-Zeit-String konvertiert Python
- 18. Wie man JSON dekodiert und Backslashes in Python mit der JSON-Bibliothek treu darstellt
- 19. eine CSV-formatierte Textdatei
- 20. Einen Json :: Value in std :: string konvertieren?
- 21. Wie konvertiert man QString in std :: string?
- 22. eine Stringliteral an eine Funktion, die eine std :: string &
- 23. Wie konvertiert man std :: string in CV :: String in C++?
- 24. Wie dekodiert man NSURL in iOS?
- 25. JSON-String in eine Enumeration deserialisieren
- 26. Schlecht formatierte JSON-Analyse
- 27. Wie verwendet man Datamapper, um Tabelleneinträge als eine json-formatierte Zeichenfolge zurückzugeben?
- 28. Freie Speicher durch eine std :: string verwendet
- 29. Randomize eine Std :: Liste <std::string>
- 30. Interpretieren Sie eine std :: string als std :: vector von char_type?
Können Sie zeigen einen Code, den Sie versucht haben, und vielleicht jemand können Sie von dort helfen. – gottlieb76
Ich bin überrascht, wie ich weiß, Spanisch hat Artikel. – peterh
@peterh gehen für irgendeine Art von Ironie Award, ich sehe :) – sehe