Qt中如何从QJson解析结果中获取指定key“field1”的对应值
提取field1值的操作方法
你获取到的distance["feeds"]是QJsonArray类型,数组中存储的第一个元素才是包含field1键的QJsonObject,按照如下代码逐层提取即可:
// 1. 从distance对象中取出feeds对应的JSON数组 QJsonArray feeds_arr = distance["feeds"].toArray(); // 2. 安全校验:判断数组非空后取第一个元素转为JSON对象 if (!feeds_arr.isEmpty()) { QJsonObject first_feed = feeds_arr.first().toObject(); // 3. 提取field1对应的值,此处默认是字符串格式 QString field1_value = first_feed["field1"].toString(); // 若需要转为整数,使用以下写法 // int field1_value = first_feed["field1"].toInt(); qDebug() << field1_value; }
注意事项
- 如果你可以100%确认feeds数组永远有至少一个元素,可以省略非空判断直接取值,不过生产环境建议保留校验避免数组越界引发崩溃
- 若你的场景中feeds数组可能存在多个元素,自行调整索引或者遍历数组取值即可
内容的提问来源于stack exchange,提问作者coder
相关产品推荐
相关产品推荐

