QT5:从json结果“反序列化”键/值数组的最佳方法

弗雷德

我从QT开始,这是一场噩梦,要从php获取数据(发送mysql结果)

PHP方面:

...
$rs = mysql_query( $sql );
while ($row = mysql_fetch_assoc($rs)) { 
    $result[] = $row;
}
echo json_encode(array('code'=>'OK', 'result' => $result));

女巫给出以下结果:

{"code":"OK","result":
[{"CCMGD_HOUR":"19980","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"32400","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"71100","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"71700","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"72000","CCMGD_DAY":"3"}]}

现在,QT端:

...
QNetworkReply* reply;
QString data = (QString) reply->readAll();
QJsonDocument d = QJsonDocument::fromJson(data.toUtf8());
QJsonObject jo = d.object();

QVariantHash hash =  jo.toVariantHash();
QVariantList list = hash.value("result").toList();

但是之后 ???如果我擅长这一点,如何遍历遍历的行并提取键(CCMGD_HOUR和CCMGD_DAY)?

我发现如何迭代:

foreach(const QVariant &item, result){
   ...//but item has 2 items for the row:
     [0]
       key "CCMGD_HOUR"
       value "19980" 
     [1]
       key "CCMGD_DAY"
       value "3" 

     how to extract this ?
}

谢谢 !

拉姆征服者

要从Json中提取值,请尝试以下操作

QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
QJsonObject jo = document.object();
foreach (const QJSonValue& value, jo["result"].toArray()) {
  QJsonObject obj = value.toObject();
  qDebug() << "CCMGD_HOUR: " << obj["CCMGD_HOUR"].toInt();
  qDebug() << "CCMGD_DAY: " << obj["CCMGD_DAY"].toInt(); 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

反序列化数组的JSON数组

来自分类Dev

反序列化数组的JSON数组

来自分类Dev

反序列化Json访问结果

来自分类Dev

反序列化json数组

来自分类Dev

数组JSON反序列化

来自分类Dev

无法反序列化json数组

来自分类Dev

当键值未知时反序列化JSON

来自分类Dev

如何反序列化JSON数组并将结果对象绑定到WPF DataGrid?

来自分类Dev

反序列化结果正文,它是json响应的字节数组

来自分类Dev

JSON.NET反序列化-单结果与数组

来自分类Dev

JSON.NET反序列化-单结果与数组

来自分类Dev

使该json字符串反序列化的最佳方法是什么?

来自分类Dev

数组反序列化不支持JSON反序列化类型

来自分类Dev

如何反序列化Json数组以列出(或)数组

来自分类Dev

JSON反序列化结果中的内容奇怪

来自分类Dev

Json.net从HTTPClient结果反序列化DateTime

来自分类Dev

使用Newtonsoft.Json反序列化Json数组

来自分类Dev

使用JSON.net反序列化JSON数组

来自分类Dev

使用Jackson将反序列化JSON数组反序列化为Map

来自分类Dev

使用Jackson将反序列化JSON数组反序列化为Map

来自分类Dev

反序列化JSON

来自分类Dev

反序列化 JSON

来自分类Dev

在序列化和反序列化之间存储与序列化相关的信息的最佳方法

来自分类Dev

使用RestSharp反序列化嵌套的JSON数组

来自分类Dev

用空白数组反序列化JSON对象

来自分类Dev

在C#中反序列化嵌套的JSON数组

来自分类Dev

如何反序列化仅包含值的JSON数组?

来自分类Dev

JSON反序列化-处理可以是数组的属性

来自分类Dev

反序列化数组时如何获取对象json