c++的jsoncpp自己是用的比较顺手了,可是发现新的方法,当然也愿意去尝试尝试。
但是到后面发现跟当初用boost的ptree情景一样,都卡在了不懂怎么进去访问第二级,而告败。现在贴出来,希望高手指点。
#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里面的值,但是不知道怎么得到。。。。哥郁闷了。。。