c_cpp qt读取json文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp qt读取json文件相关的知识,希望对你有一定的参考价值。

void RollCallSystem::readJson()
{
    QJsonDocument m_json;
    QJsonObject m_object;

    QFile file;
    file.setFileName(":/setting/data.json");

    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::warning(this, "warning", "can not open this file");
        return;
    }

    m_json = QJsonDocument::fromJson(file.readAll());
    m_object = m_json.object();

    QJsonArray m_names = m_object.value("person_name").toArray();

    foreach (auto i, m_names) {
        name_data.append(i.toString());
    }

    file.close();
}

    http->get(request);
}


void Dict::replyfinished(QNetworkReply *reply)
{
    QJsonDocument m_json;
    QJsonObject m_object, m_data, m_pron, m_audio;

    QByteArray wordInformation = reply->readAll();
    m_json = QJsonDocument::fromJson(wordInformation);

    if (!m_json.isNull())
    {
        m_object = m_json.object();
        m_data = m_object.value("data").toObject();
        m_pron = m_data.value("pronunciations").toObject();
        m_audio = m_data.value("audio_addresses").toObject();

        name = m_data.value("content").toString();
        ukPron = m_data.value("uk").toString();
        usPron = m_data.value("us").toString();
        chinese = m_data.value("definition").toString();
        ukAudio = m_audio.value("uk").toString();
        usAudio = m_audio.value("us").toString();
    }

    QString message = m_object.value("msg").toString();

    emit signalQueryFinished(name, ukPron, usPron, chinese, ukAudio, usAudio, message);
}

以上是关于c_cpp qt读取json文件的主要内容,如果未能解决你的问题,请参考以下文章

如何解析这个 JSON 文件? (Qt)

使用非 Qt 从 Qt QJsonDocument::toBinaryData 读取二进制 Json?

更新 QJsonArray 中的值并写回 Qt 中的 Json 文件

c_cpp 创建文件和读取文件

在 Qml 和 javascript 中动态读取配置文件(javascript 文件或 json 文件)

c_cpp 从文件中读取