1

QJsonArray に挿入する必要がある QString があります。問題は、文字列がそのまま挿入され、エスケープ シーケンスが機能しないことです。

    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 の形式は失われます。

文字列をデコードして形式を維持し、エスケープ シーケンスを機能させるにはどうすればよいですか?

4

1 に答える 1