3
Qt에서 처음으로 몇 가지 테스트 기능을 작성하고 최종 프로젝트를 개발하는 데 필요한 비트를 이해하려고합니다. 여기에 기능은 다음과 같습니다QJsonObject로 JSON 읽기
배열 형식의 예에서 테스트 JSON 응답의 경우#include "money.h"
#include "ui_money.h"
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QString>
#include <QJsonArray>
#include <QJsonDocument>
Money::Money(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Money)
{
ui->setupUi(this);
}
Money::~Money()
{
delete ui;
}
void Money::on_getJsonData_clicked()
{
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://scarjamoney.no-ip.biz")));
}
void Money::replyFinished(QNetworkReply* Reply)
{
QString string = Reply->readAll();
QJsonDocument document = QJsonDocument::fromJson(string.toUtf8());
if(document.isArray()){
QJsonArray valuesA = document.array();
foreach (const QJsonValue write, valuesA){
//ui->textEdit->setText("dentro");
QString text = QString::number(write.toDouble());
//qDebug() << "ciao" << text;
ui->textEdit->append(text);
}
}
else if(document.isObject()){
QJsonObject valuesO = document.object();
foreach (const QJsonValue write, valuesO){
ui->textEdit->append("inside");
}
ui->textEdit->append("it's an object");
}
}
:
{"firstValue":1,"secondValue":2}
I :
[1,2]
모두가 같은 개체를 대신 시험, 작동 컴파일 할 때 다음과 같은 오류가 발생합니다.
C:\Qt\Tools\QtCreator\bin\Money\money.cpp:53: error: variable 'QJsonObject valuesO' has initializer but incomplete type
QJsonObject valuesO = document.object();
C:\Qt\Tools\QtCreator\bin\Money\money.cpp:53: error: invalid use of incomplete type 'class QJsonObject'
QJsonObject valuesO = document.object();
테스트 json 문서를 객체로 변환하지 않는 이유는 무엇입니까? 당신은 QJsonObject
을 포함하는 것을 잊지 제임스
아은 .... 때로는 너무 간단 ... 자신을 찰 수는 aswell보고 한 시간 정도 소요! ! 감사 – James