Arrays Qt-JSON:如何获取数组元素?
我觉得我在这里疯了 我试图解析JSON文档,每次尝试访问数组的元素时,都会得到数组本身。经过一些淘汰,我提出了以下SSCCE: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[]) {
#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赞美上帝。请将你的评论转化为答案。