jsondata={"cmd":"meetingmemberlist","memberinfos":[{"name":"李","number":"668162","status":"Offline"},{"name":"66668888","status":"Offline"},{"name":"1.221","number":"1234561","status":"Offline"},{"name":"1.42","status":"Offline"}],"session":"2989479764ll","touid":"19","xns":"18"}
void CEMViewMenuInteraction::get_memberdata_from_jsondate(std::string jsondata) { QByteArray ByteArr = QByteArray(jsondata.c_str()); //判斷字符串轉化為 QJsonDocument 是否出現了錯誤 QJsonParseError jsonError;//Qt5新類 QJsonDocument jsonDoc = QJsonDocument::fromJson(ByteArr, &jsonError);//Qt5新類 if (jsonError.error == QJsonParseError::NoError) { // qDebug()<< "parse jsondata"; if (jsonDoc.isObject()) { QJsonObject rootObj = jsonDoc.object(); QString cmd; QString session; //是否含有key cmd if (rootObj.contains("cmd")) { //取出key為rootpath的值 QJsonValue value = rootObj.value("cmd"); //判斷是否是string類型 if (value.isString()) { cmd = value.toString(); // qDebug()<< "cmd=" <<cmd; } } if (rootObj.contains("session")) { //取出key為 session 的值 QJsonValue value = rootObj.value("session"); //判斷是否是string類型 if (value.isString()) { session = value.toString(); // qDebug()<< "session=" << session; } } if (rootObj.contains("memberinfos")) { QJsonValue valueArray = rootObj.value("memberinfos"); //判斷類型是否為array,並且將array遍歷出來 if (valueArray.isArray()) { QJsonArray jsonArray = valueArray.toArray(); QString child_name = "null"; QString child_status = "null"; for (int i = 0; i < jsonArray.count();i++) { QJsonValue childValue = jsonArray[i]; if (childValue.isObject()) { QJsonObject childObject = childValue.toObject(); if (childObject.contains("name")) { QJsonValue valueJson = childObject.value("name"); if (valueJson.isString()) { child_name = valueJson.toString(); // qDebug()<< "name=" <<child_name; } } if (childObject.contains("status")) { QJsonValue valueJson = childObject.value("status"); if (valueJson.isString()) { child_status = valueJson.toString(); // qDebug()<< "status=" <<child_status; } } m_MemberListMap[child_name] = child_status; } } } } } } }