Как разобрать escape-последовательности в QString?

У меня есть QString, что мне нужно вставить его в QJsonArray. Проблема в том, что строка вставляется как есть, а escape-последовательности не работают.

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

Здесь qstring заполняется значениями из «id» и «name» (это также QString) и затем вставляется в qjsonarray. Labellist здесь является QJsonArray. Входными данными для QString являются, например, «55» и «ggg». Когда я печатаю qstring, как

    qDebug().noquote() << fmt;

это дает мне

    {
"55":"ggg"}

но если я вставлю его в список этикеток и выведу список, он даст:

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

Формат значений QJson в указанном массиве потерян.

Как декодировать строку, чтобы сохранить формат и заставить работать escape-последовательности?

1

Решение

я хотел бы использовать 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;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]