如何从 QString 中删除反斜杠?

Fra*_*aro 3 c++ qstring qt qt5

使用QNetworkManager get方法我从一个 url 接收一个 json。
做:qDebug()<<(QString)reply->readAll();结果是:

"\r\n[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]"
Run Code Online (Sandbox Code Playgroud)

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

"[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]"
Run Code Online (Sandbox Code Playgroud)

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

"[{"id":"1","name":"Jhon","surname":"Snow","phone":"348348348"}]"
Run Code Online (Sandbox Code Playgroud)

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

Nik*_* C. 10

您可能会遇到qDebug's 转义引号和换行符的功能。您的字符串很可能实际上没有任何反斜杠。

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

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

  • 我在这里有点晚了,但应该提到的是,`QString::simplified()`也可以用于删除转义字符,例如`\n`和`\r`(任何`QString:: isSpace()` 返回 true)并用单个空格替换空格序列。https://doc.qt.io/qt-5/qstring.html#simplified (2认同)