سؤال
أنا أستخدم الكود التالي للحلية:
QJson::Parser parser;
bool ok;
QVariantMap result=parser.parse (cityReply->readAll(),&ok).toMap();
if (!ok)
{
qFatal("An error occurred during parsing");
exit (1);
}
foreach (QVariant city, result.toList())
{
QVariantMap names = city.toMap();
qDebug() << "\t-" << names["name"].toString();
}
سلسلة JSON الخاصة بي [{"id":2,"name":"AAA"},{"id":1,"name":"BBB"}]
.
حصلت على الخطأ التالي:
"فئة QVariantMap" ليس لديها عضو يدعى "Tolist".
هل من الممكن تحويل QMAP إلى Qlist؟
المحلول
result
تحتوي على صفيف تسلسلي كما QVariant
. تحتاج إلى استخراجه قبل الاتصال toList()
وظيفة. نظرًا لأن Array لم يتم تسميته في JSON String ، يمكنك الوصول إليها عن طريق الحصول على الأول QVariant
في الخريطة والقيام بما كتبته في السؤال.
لا تنتمي إلى StackOverflow