Arrays Qt-JSON:如何获取数组元素?

Arrays Qt-JSON:如何获取数组元素?,arrays,json,qt,Arrays,Json,Qt,我觉得我在这里疯了 我试图解析JSON文档,每次尝试访问数组的元素时,都会得到数组本身。经过一些淘汰,我提出了以下SSCCE: #include <QCoreApplication> #include <QJsonDocument> #include <QJsonObject> #include <QJsonArray> #include <QDebug> int main(int argc, char *argv[]) {

我觉得我在这里疯了

我试图解析JSON文档,每次尝试访问数组的元素时,都会得到数组本身。经过一些淘汰,我提出了以下SSCCE:

#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    const QByteArray jsonData {"[1,2]"};

    QJsonParseError error;
    const QJsonDocument jsonDoc {QJsonDocument::fromJson(jsonData, &error)};
    if(error.error != QJsonParseError::NoError)
    {
        qWarning() << error.errorString();
        return -1;
    }
    Q_ASSERT(!jsonDoc.isNull());
    Q_ASSERT(!jsonDoc.isEmpty());

    Q_ASSERT(jsonDoc.isArray());
    const QJsonArray jsonArray {jsonDoc.array()};
    qDebug() << jsonArray.size(); // Expectation: 2, reality: 1
    qDebug() << jsonArray; // Expectation: QJsonArray([1,2]), reality: QJsonArray([[1,2]])

    const QJsonValue jsonValue {jsonArray.at(0)};
    qDebug() << jsonValue.type(); // returns 4 (Array)

    const QJsonArray jsonArray2 {jsonValue.toArray()};
    qDebug() << jsonArray2.size(); // Expectation: 2, reality: 1
    qDebug() << jsonArray2; // Expectation: QJsonArray([1,2]), reality: QJsonArray([[1,2]])

    // ...ad infinitum

    return 0;
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
const QByteArray jsonData{[1,2]};
QJsonParseError错误;
const QJsonDocument jsonDoc{QJsonDocument::fromJson(jsonData,&error)};
if(error.error!=QJsonParseError::NoError)
{

qWarning()
常量QJsonArray jsonArray{jsonDoc.array()};

这并不是你所期望的。当花括号初始化用于所有不需要它的地方时(除了不可读性之外),它实际上是一个pita。

const QJsonArray jsonArray{jsonDoc.array()}
这并不是你所期望的。大括号初始化在任何不需要它的地方(除了不可读性之外)都是一个很好的例子。@chehrlic赞美上帝。请将你的评论转化为答案。