|
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();
- }
|