void QMapToJson()
{
QMap<QString,QVariant> mapData = QMap<QString,QVariant>(); // 定义一个map
mapData.insert("id","30001"); // 插入数据
mapData.insert("number","189053056");
mapData.insert("name","Json");
QJsonDocument doc = QJsonDocument::fromVariant(QVariant(mapData)); // 转化成documnet对象
QByteArray bJson = doc.toJson();
QString sJson = QString(bJson); //转化为字符串
qDebug()<<sJson<<endl;
QByteArray bsJson = sJson.toUtf8(); // 字符串转化为字节数组
QJsonObject jobj = QJsonObject(QJsonDocument::fromJson(bsJson).object()); // 字节数组转化为Json对象
// QJsonObject nobj = QJsonObject(QJsonDocument::fromJson(bsJson).object());
qDebug()<<jobj.take("id").toString()<<endl
<<jobj.take("number").toString()<<endl
<<jobj.take("name").toString()<<endl;
}
void JsonToMap(){
QJsonObject json; // 定义json对象
json.insert("id","3000");
json.insert("number","88888");
json.insert("name","Json");
QJsonDocument document; // 定义一个文件对象
document.setObject(json); // 设置json对象
// 将qjsonddocument转换为提供格式的UTF-8编码JSON文档。
// 将紧凑输出定义如下:
QByteArray byteArray = document.toJson(QJsonDocument::Compact);
QString strJson(byteArray); // 转化成字符串
qDebug()<<strJson<<endl;
QVariantMap map = json.toVariantMap();
int num = map.size();
qDebug()<<"元素个数"
<<num
<<endl;
QMap<QString,QVariant>::const_iterator iter = map.constBegin();
while(iter != map.constEnd())
{
qDebug()<<"key:" <<iter.key()<<" value"<<iter.value();
++iter;
}
}