1

我是 QT 的新手,我创建了一个 HTTP 服务器,服务器将在 Windows 上运行,客户端在 android 上运行,服务器将获得 JSON 格式的 POST 请求和响应,如下所示:

json响应:

[
     {         
    "FName": "fname",
    "LName": "lname",
    "MobileNo": 0000000000000,
    "Passwd": "a56df67a6sd8fa9ds8f0ads89f8asd7f",
    "UserName": "testexample",
    "authority": 3,
    "id": 10,
    "images": "/files/team1.jpg"
},
{
    "FName": "super",
    "LName": "visor",
    "MobileNo": 1111111111111,
    "Passwd": "78ad78af97sd89f7a9sd7f9as7df8asd7f",
    "UserName": "supervisor",
    "authority": 2,
    "id": 11,
    "images": "/files/team1.jpg"
}]

服务器代码:

   QJsonDocument  json;
  QJsonArray     recordsArray;

  while(query.next())
  {
     QJsonObject recordObject;
        for(int x=0; x < query.record().count(); x++)
        {
            recordObject.insert( query.record().fieldName(x),QJsonValue::fromVariant(query.value(x)) );
        }
     recordsArray.push_back(recordObject);
  }
  json.setArray(recordsArray);

  return json.toJson();

如何从所有动态对象中获取 FName、LName。我想使用 qt 类,因为我正在 Qt 中为 android 创建客户端。

我在 Windows 上使用 QT5.9.2 任何示例......

4

1 回答 1

0

解决方案:

QJsonDocument doc = QJsonDocument::fromJson(json.toJson());
QJsonArray ary = doc.array();
foreach (const QJsonValue & value, ary) 
{
    QJsonObject obj = value.toObject();
    qDebug() <<"test: "<< obj["FName"].toString();
}
于 2018-02-28T07:43:00.087 回答