从QJsonarray获取QJsonObjects而不使用数组名

时间:2018-02-28 06:57:14

标签: android qt qt5 qjson

我是QT的新手,我已经创建了一个HTTP服务器,服务器将在Windows上运行,客户端在android上,服务器将获得POST请求和JSON响应,类似:

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 任何例子........

1 个答案:

答案 0 :(得分: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();
}