代码之家  ›  专栏  ›  技术社区  ›  Francesco Pegoraro

如何从QString中删除反斜杠?

  •  3
  • Francesco Pegoraro  · 技术社区  · 7 年前

    使用 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( "\\\" ) ); 但任何奇怪的连接 \ 让口译员思考最后一句话之后的每一件事 \ 作为字符串。

    2 回复  |  直到 7 年前
        1
  •  10
  •   Nikos C.    7 年前

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

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

    所以你的绳子应该没问题。它根本没有任何反斜杠。

        2
  •  0
  •   M4HdYaR    7 年前

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

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

    你可以用“\\”而不是“a”来删除QString中的反斜杠