2016-04-14 11 views

Antwort

0

EDIT - die Boost-Bibliothek scheint nur RapidXML zu verwenden, nicht RapidJSON.


Es sollte Sie nicht kümmern, weil es ein Implementierungsdetail der Bibliothek sowieso ist.

So könnte die Antwort "nein" (wahrscheinlicher, "ja") sein und Sie können absolut nichts davon gewinnen, weil Sie sich nicht darauf verlassen können.

einfach Ihre eigene XML-Bibliothek auswählen und es verwenden, wo Sie es brauchen: What XML parser should I use in C++?

IIRC meist Steigern Sie die Namespace geändert, so dass Sie nicht ODR haben kollidiert, wenn Sie wählen RapidXML

+0

Ich sehe ich falsch gelesen RapidJSON als RapidXML. Dasselbe gilt mutatis mutandis – sehe

+0

in Bezug auf die Effizienz, die die gute sein wird? – vishnubvrit

+0

Was meinst du? Sie haben nur eine Option. Das wird die sein – sehe

3

Ich habe 37 verglichen C/C++ JSON-Bibliotheken in nativejson-benchmark für Standardkonformität und Leistung.

Allerdings konnte ich Boost.PropertyTree (1.60) im Benchmark nicht integrieren, weil es Zahl, True, False, Null-Typen als Strings analysiert.


Edit: Um die Frage zu mehr direkt zu beantworten, Boost.PropertyTree nicht JSON Funktionalitäten meisten JSON-Bibliotheken zu tun geben. Auf der anderen Seite ist RapidJSON eine JSON-Bibliothek mit hoher Konformität und Leistung. Übrigens bietet RapidJSON neben dem Parsing/Stringing von JSON auch Streaming-Style-API, JSON-Pointer und JSON-Schema. Diese Funktionen sind in Open-Source-Bibliotheken nicht üblich.

+0

Natürlich. Es ist keine JSON-Bibliothek. Es ist eine Eigenschaftsbaum-Bibliothek. Wenn Sie eine JSON-Bibliothek benötigen, verwenden Sie eine JSON-Bibliothek. – sehe

+0

ist die JSON-Bibliothek und schnelle JSON ein und dasselbe? – vishnubvrit

+0

@ user3262531 Das war die Frage, und das habe ich geantwortet. Die Boost-Eigenschaft ** ist jedoch keine JSON-Bibliothek. Es ** verwendet ** eins (um eines der möglichen Backends für Eigenschaftsbäume zu implementieren). – sehe