如何从 QString 中删除反斜杠?

How to remove backslashes from QString?

使用 QNetworkManager get 方法我从 url.
收到 json 这样做:qDebug()<<(QString)reply->readAll(); 结果是:

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

所以我在做 strReply = strReply.simplified(); ,结果是:

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

但我不能像 Json 那样使用它来解析它以在我的 qt 程序中使用它。 所以我想我需要删除每个反斜杠 \ 并获得:

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

我尝试了 strReply.remove(QRegExp( "\\" ) );,但是 \ 的任何奇怪连接都会导致解释器将最后一个 \ 之后的所有内容都视为字符串。

documentation中所述,您可以使用删除功能删除字符

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

你可以用 '\\' 代替 'a' 来从你的 QString

中删除你的反斜杠

您可能 运行 喜欢 qDebug 转义引号和换行符的功能。您的字符串很可能实际上没有任何反斜杠。

当您尝试使用 qDebug() 打印字符串时,如果您不希望 qDebug() 在输出中人为地插入反斜杠,则需要使用 qDebug().noquote()

所以你的字符串应该没问题。它根本没有任何反斜杠。