как удалить json объектный ключ и значение в QT / c ++? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть файл json, как показано ниже

{
    "TestId:1": {
        "FILE ID": "223",
        "CLASS": "rame",
        "PLATFORM": "test"
    },

    "TestId:2": {
        "FILE ID": "123",
        "CLASS": "raj",
        "PLATFORM": "test2"
    }
}

Я хочу удалить содержимое ключа "TestId:2".

Я пробовал delete obj["TestId:2"];, но это не сработало. Он удаляет только ключ "TestId:2"

Я хочу удалить ключ со значением .

Может ли кто-нибудь помочь мне в этом?

1 Ответ

1 голос
/ 04 августа 2020

Вам необходимо создать QJsonObject для его редактирования.

Сначала прочтите свой файл:

QFile file("myfile.json"); // to replace with you file name
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
file.close();

Затем создайте QJsonDocument с данными из файла:

QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(data, &error);

Затем получите root объект документа:

QJsonObject root = doc.object();

Удалите элемент в объекте, например:

root.remove("TestId:2");

Затем создайте новый документ с измененный элемент:

doc = QJsonDocument(root);

И, наконец, снова запишите файл:

file.open(QIODevice::WriteOnly);
file.write(doc.toJson());
file.close();

И это должно сработать. Как обычно, есть много проверок, которые нужно добавить повсюду (открытие файла, JSON синтаксический анализ и т. Д. c).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...