如何从QString中删除反斜杠?

时间:2017-11-22 11:50:02

标签: c++ qt qt5 qstring

使用QNetworkManager get方法我从网址接收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( "\\\" ) );,但是\的任何奇怪连接都会导致解释器在最后\之后的所有内容中作为字符串进行思考。

2 个答案:

答案 0 :(得分:4)

你可能会遇到qDebug的功能,它会逃脱报价和换行符。你的字符串很可能实际上没有任何反斜杠。

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

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

答案 1 :(得分:0)

documentation中所述您可以删除具有删除功能的字符

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

您可以使用'\\'而不是'a'来从QString中删除反斜杠