Ihre Frage identifiziert Ihre Eingabe und die erwartete Ausgabe nicht genau. Analysieren Sie das C++ aus einer Datei? Ich kann es nicht sagen.
Wenn der erste Codeblock eine automatisch generierte Eingabedatei ist und immer dieses Whitespace-Muster enthält und das JSON-Äquivalent die gewünschte Ausgabe ist, ersetzen Sie die erste Zeile durch "[\ n" und die letzte Zeile durch "]/n" und du bist fertig.
Wenn Sie das Leerraummuster der Eingabedatei nicht garantieren können, benötigen Sie einen C++ - Parser, um einen AST (abstrakten Symbolbaum) zu generieren, den Sie durchstreichen können, um das FaceIds-Array RHS (rechte Seite) zu finden. und machen Sie dann dasselbe wie unten in dieser AST-Sammlung gezeigt.
Wenn Sie einfach in C iterieren wollen ++ durch faceIds, dann sollte der folgende Code die gewünschten JSON-String erzeugen:
#include <iostream>
#include <sstream>
std::string faceIds[] = {
"29e874a8-a08f-491f-84e8-eac263d51fe1",
"6f89f38a-2411-4f6c-91b5-15eb72c17c22",
"7284b730-6dd7-47a3-aed3-5dadaef75d76",
"1fc794fa-3fd4-4a78-af11-8f36c4cbf14c",
"3e57afca-bd1d-402e-9f96-2cae8dbdfbfa",
"c2a4e0f5-4277-4f5a-ae28-501085b05209",
"23b5910e-9c32-46dd-95f3-bc0434dff641"
};
int main() {
std::ostringstream ostr;
ostr << '[' << std::endl;
int last = std::extent<decltype(faceIds)>::value - 1;
int i = 0;
while (i < last)
ostr << " \"" << faceIds[i ++] << "\"," << std::endl;
ostr << " \"" << faceIds[i] << "\"" << std::endl;
ostr << ']' << std::endl;
std::cout << ostr.str();
return 0;
}
Wenn Sie einige Bibliothek Darstellung Objekt wollen, dann werden Sie feststellen müssen, welche Bibliothek Sie verwenden, damit wir seine API überprüfen können. Egal, welche Bibliothek Sie verwenden, Sie können immer die Parse-Methode ausführen, die oben auf ostr.str() steht, aber wir könnten eine effizientere Methode finden, um die entsprechende JSON-Struktur zu erstellen, wenn Sie die JSON-Bibliothek identifiziert haben. Man kann die Bibliothek nicht eindeutig anhand eines Objektnamens wie JSONObject identifizieren, bei dem es sich um einen Klassennamen handelt, der in Dutzenden von Bibliotheken verwendet wird.
Werfen Sie einen Blick auf diese Bibliothek: https://github.com/nlohmann/json –
Es ist Bibliothekszeit. Dies von Hand zu tun, kommt völlig außer Frage, Sie werden immer etwas katastrophal falsch bekommen. – tadman
überprüfen Sie diese stackoverflow Antwort ... http://stackoverflow.com/questions/15609306/convert-string-to-json-array – Shobhit