2017-11-22 3 views
0

Mit QNetworkManagerget Methode Ich erhalte einen JSON von einer URL.
Doing: qDebug()<<(QString)reply->readAll(); das Ergebnis:Wie entferne ich Backslashes von QString?

"\r\n[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]" 

So bin ich strReply = strReply.simplified(); tun, und das Ergebnis ist:

"[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]" 

Aber ich kann das nicht wie ein Json zu analysieren, um es zu benutzen in meinem Qt-Programm. Also ich denke, ich alle Schrägstriche \ entfernen müssen und erhalten:

"[{"id":"1","name":"Jhon","surname":"Snow","phone":"348348348"}]" 

Ich versuchte strReply.remove(QRegExp("\\\")); aber jede ungerade Verkettung von \ verursacht der Dolmetscher bei jeder Sache zu denken, die nach dem letzten \ als String kommt.

+0

Es gibt mindestens 5 einfache, vernünftige Antworten. Warum fragst du? – MSalters

+0

Weil ich sie ohne Erfolg versuchte. –

+0

Ich habe Qt jetzt nicht, aber versuchen Sie Folgendes: 'string ans = str.remove (QRegExp (" \\\ "));' –

Antwort

3
zu entfernen

Sie sind wahrscheinlich in qDebug 's Feature, die Zitate und Zeilenumbrüche entkommt. Ihre Zeichenfolge enthält höchstwahrscheinlich keine umgekehrten Schrägstriche. Wenn Sie versuchen, eine Zeichenfolge unter Verwendung von qDebug() zu drucken, müssen Sie qDebug().noquote() verwenden, wenn qDebug() Backlashes nicht künstlich in die Ausgabe einfügen soll.

So sollte Ihre Zeichenfolge in Ordnung sein. Es hat überhaupt keine Backslashes.

0

Wie in der documentation beschrieben Sie ein Zeichen mit Entfernen Funktion kann

QString t = "Ali Baba"; 
t.remove(QChar('a'), Qt::CaseInsensitive); 
// Will result "li Bb" 

Sie setzen ‚\\‘ anstelle von ‚a‘ entfernen können, um Ihre Schrägstriche von Ihrem QString

+0

Doesen arbeiten nicht mit Backslashes, weil sie als Flucht betrachtet werden. Danke –

+0

@FrancescoPegoraro Antwort bearbeitet, Was ist mit '\\'? – M4HdYaR

+0

funktioniert in meinem Fall nicht, ich erkläre besser in Frage. Vielen Dank –