amwha |
2017-05-10 15:41 |
QT json
json解析: - #include <QCoreApplication>
#include <QFile> #include <QTextStream> #include <QJsonArray> #include <QJsonDocument> #include <QJsonObject> #include <QDebug>
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); { QVariantList people;
QVariantMap bob; bob.insert("Name", "Bob"); bob.insert("Phonenumber", 123);
QVariantMap alice; alice.insert("Name", "Alice"); alice.insert("Phonenumber", 321);
people << bob << alice;
QJsonDocument jsonDocument = QJsonDocument::fromVariant(people);
QByteArray byte_array = jsonDocument.toJson();
QFile file("./test1.js"); file.open(QIODevice::WriteOnly); QTextStream stream(&file); stream << byte_array << "\r\n"; file.flush(); file.close();
QJsonParseError ParseError; QJsonDocument praseDoc = QJsonDocument::fromJson(byte_array,&ParseError);
if(ParseError.error == QJsonParseError::NoError) { if(praseDoc.isArray()) { QJsonArray array = praseDoc.array();
for(int i = 0 ; i < array.size(); i++) { QVariantMap result = array.at(i).toVariant().toMap();
for(QVariantMap::iterator iter = result.begin();iter != result.end();iter++) { QString key = iter.key(); QVariant value = iter.value();
qDebug()<<key<<value.toString(); } } qDebug()<<"/////////////other method/////////////"; for(int i = 0 ; i < array.size(); i++) { QJsonObject obj = array.at(i).toObject();
qDebug()<<obj.value("Name").toString()<<obj.value("Phonenumber").toInt(); }
} } } qDebug()<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"; { QJsonObject json_object1; json_object1.insert("ID", "1263"); json_object1.insert("Name", "lin"); json_object1.insert("age", 20);
QJsonObject json_object2; json_object2.insert("ID", "2345"); json_object2.insert("Name", "jin"); json_object2.insert("age", 5);
QJsonArray json_array;
json_array.insert(0,json_object1); json_array.insert(1,json_object2);
QByteArray byte_array = QJsonDocument(json_array).toJson();
QJsonArray json_array2 = QJsonDocument::fromJson(byte_array).array();
for(int i = 0; i < json_array2.size(); ++i) { QJsonObject json = json_array2.at(i).toObject(); qDebug() << json.value("ID").toString(); qDebug() << json.value("Name").toString(); qDebug() << json.value("age").toInt(); }
QFile file("./test2.js"); file.open(QIODevice::WriteOnly); QTextStream stream(&file); stream <<byte_array<<"\r\n"; file.flush(); file.close(); } qDebug()<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"; { QString json("{" "\"encoding\" : \"UTF-8\"," "\"plug-ins\" : [" "\"python\"," "\"c++\"," "\"ruby\"" "]," "\"indent\" : { \"length\" : 3, \"use_space\" : true }" "}"); QJsonParseError error; QJsonDocument jsonDocument = QJsonDocument::fromJson(json.toUtf8(), &error); if (error.error == QJsonParseError::NoError) { if (jsonDocument.isObject()) { QVariantMap result = jsonDocument.toVariant().toMap(); qDebug() << "encoding:" << result["encoding"].toString(); qDebug() << "plugins:";
foreach (QVariant plugin, result["plug-ins"].toList()) { qDebug() << "\t-" << plugin.toString(); }
QVariantMap nestedMap = result["indent"].toMap(); qDebug() << "length:" << nestedMap["length"].toInt(); qDebug() << "use_space:" << nestedMap["use_space"].toBool(); } }
QByteArray byte_array = jsonDocument.toJson();
QFile file("./test3.js"); file.open(QIODevice::WriteOnly); QTextStream stream(&file); stream << byte_array<<"\r\n"; file.flush(); file.close(); } qDebug()<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"; {
QJsonObject person; person.insert("ID", "1263"); person.insert("Name", "lin"); person.insert("age", 20);
QJsonObject company; company.insert("Name", "HH CO.LMT"); company.insert("Location", "guangzhou"); company.insert("businss", "med");
QJsonObject json_object; json_object.insert("person", QJsonValue(person)); json_object.insert("company", QJsonValue(company));
QByteArray byte_array = QJsonDocument(json_object).toJson();
QJsonParseError ParseError; QJsonDocument praseDoc = QJsonDocument::fromJson(byte_array,&ParseError);
if(ParseError.error == QJsonParseError::NoError) { if(praseDoc.isObject()) { QJsonObject objs = praseDoc.object();
QVariantMap result = objs.value("company").toVariant().toMap();
qDebug()<< result["Location"].toString(); qDebug()<< result["Name"].toString(); qDebug()<< result["businss"].toString();
result = objs.value("person").toVariant().toMap();
qDebug()<< result["ID"].toString(); qDebug()<< result["Name"].toString(); qDebug()<< result["age"].toString(); } }
QFile file("./test4.js"); file.open(QIODevice::WriteOnly); QTextStream stream(&file); stream << byte_array<<"\r\n"; file.flush(); file.close(); }
return a.exec(); }
|
|