如何在 QString 中解析转义序列



我有一个QString,我需要将其插入QJsonArray。问题是字符串按原样插入,转义序列不起作用。

    QString fmt = QString("{n "%1":"%2"n}").arg(id,name);
    QJsonValue qjv(fmt);
    labellist.insert(lSize, qjv);

在这里,qstring 填充了来自 "id" 和 "name" 的值(这些也是 QString),然后插入到 qjsonarray。这里的标签列表是一个QJsonArray。QString 的输入例如"55"和"ggg"。当我打印 qstring 时,就像

    qDebug().noquote() << fmt;

它给了我

    {
     "55":"ggg"
    }

但是如果我将其插入标签列表并打印标签列表,它会给出:

    QJsonArray([{"121":"fuu"},{"122":"cat"},{"123":"dog"},"{n "55":"ggg"n}"])

上述数组中 QJsonvalues 的格式将丢失。

如何解码字符串以保留格式并使转义序列正常工作?

我会使用 QJsonDocument 静态方法 fromJson(),如下所示:

  QString fmt = QString("{n "%1":"%2"n}").arg("id","name");
  QJsonDocument doc = QJsonDocument::fromJson(fmt.toLocal8Bit());
  QJsonObject obj = doc.object();
  QJsonArray array;
  array.append(obj);
  qDebug() << array;

最新更新