2014-04-17 2 views
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을 포함하는 것을 잊지 제임스

답변

6

사전에

덕분에 :

#include <QJsonDocument> 
#include <QJsonValue> 
#include <QJsonArray> 
#include <QJsonObject> 
+0

아은 .... 때로는 너무 간단 ... 자신을 찰 수는 aswell보고 한 시간 정도 소요! ! 감사 – James