Forum: PC-Programmierung Create json doc out of a String in QT


von QTuser (Gast)


Lesenswert?

Hallo,
wie kann ich diesen json String
1
{"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title", "album", "artist", "season", "episode", "duration", "showtitle", "tvshowid", "thumbnail", "file", "fanart", "streamdetails"], "playerid": 1 }, "id": "VideoGetItem"}

in ein jsondoc in qt umwandeln??

Mein Ansatz funktioniert leider nicht
1
QJsonObject json;
2
                    QJsonObject json2;
3
                    json2.insert("properties", "[title, album, artist, season, episode, duration, showtitle, tvshowid, thumbnail, file, fanart, streamdetails]");
4
                    json.insert("params", json2);
5
                    json.insert("playerid", 0);
6
                    json.insert("id", "VideoGetitem");
7
                    QJsonDocument jsonDoc(json);

von Oliver S. (oliverso)


Lesenswert?

Ich würde den ganzen JsonString in ein QJasonDocument packen

https://doc.qt.io/qt-5/qjsondocument.html#fromJson

Und da daraus dann das Object

https://doc.qt.io/qt-5/qjsondocument.html#object

Oliver

von QTuser (Gast)


Lesenswert?

Kannst du mir helfen und ein Bsp posten ich verstehe es nicht.....

Danke

von PittyJ (Gast)


Lesenswert?

Ich lese z.B. aus einer Datei:

    QJsonDocument *pc_QtJsonDocument;
    QJsonObject    c_Object;
    QByteArray     qba_RawData;

    // Datei einlesen
    QFile cqf_File ( s_Filename.c_str() );
    cqf_File.open( QIODevice::ReadOnly );
    qba_RawData = cqf_File.readAll();
    cqf_File.close();

    // aus den Byte-Array ein JSonDocument einlesen
    pc_QtJsonDocument = new QJsonDocument (QJsonDocument::fromJson( 
qba_RawData ));

    // auf das Wurzelobjekt gehen
    c_Object = pc_QtJsonDocument->object();

Wahrscheinlich gibts gleich Gemecker, weil ich die Tags nicht verstanden 
habe.

von Sven B. (scummos)


Lesenswert?

PittyJ schrieb:
> Wahrscheinlich gibts gleich Gemecker, weil ich die Tags nicht verstanden
> habe.

Deswegen nicht, aber der Rest vom Code ist auch recht murksig. :D
1
auto const data = QByteArray("{ ... }");
2
auto const document = QJsonDocument::fromJson(data);

Ist eigentlich schon alles, was der OP wissen wollte.

: Bearbeitet durch User
von QTuser (Gast)


Lesenswert?

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.