Qtはjson解析器を持っています--未了情
2211 ワード
c++のjsoncpp自体は使い勝手がいいですが、新しい方法を発見したら、もちろん試してみたいです.
しかし後になると当初boostを使っていたptreeの光景と同じように、どうやって第2級を訪問するか分からず、敗れた.今貼って、達人が指摘することを望みます.
プログラムの実行結果は次のとおりです.
"good" "cont": "AddFixing" "address": "0-0-4-1" "fixingtype": "PDM_LH_PDM16_08" "childrens": "[object Object]"
childrensの中の値を手に入れたいのですが、どうやって手に入れるか分かりません...兄は気がふさいだ...
しかし後になると当初boostを使っていたptreeの光景と同じように、どうやって第2級を訪問するか分からず、敗れた.今貼って、達人が指摘することを望みます.
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptValueIterator>
#include <QtDebug>
#include <QtScript/QScriptValue>
#include "json/json.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
// char *ss;
QString ss ="{\"type\":\"HardwareConfig\",\"cont\":\"AddFixing\",\"address\":\"0-0-4-1\",\"fixingtype\":\"PDM_LH_PDM16_08\",\"childrens\":[{\"address\":\"0-0-4-1-0\",\"type\":\"WSD50\",\"id\":\"WSD00011\",\"parameter\":0}]}";
QScriptValue sc;
QScriptEngine engine;
sc = engine.evaluate("value = " + ss);
QScriptValueIterator it(sc);
while (it.hasNext())
{
it.next();
if(it.name()=="type")
{
it.setValue("good");
qDebug() <<it.value().toString();
}
else
{
qDebug() << it.name() << ": " << it.value().toString();
}
}
// Json::Reader reader;
// Json::Value json_reader;
// if(!reader.parse(ss, json_reader))
// {
// return -1;
// }
// int i=0;
// qDebug() << json_reader["childrens"][i]["address"].asCString();
return a.exec();
}
プログラムの実行結果は次のとおりです.
"good" "cont": "AddFixing" "address": "0-0-4-1" "fixingtype": "PDM_LH_PDM16_08" "childrens": "[object Object]"
childrensの中の値を手に入れたいのですが、どうやって手に入れるか分かりません...兄は気がふさいだ...