#include "MeeTooter.h" #include #include // QJson 序列化器 #include // QJson 解析器 MeeTooter::MeeTooter(QObject *parent) : QObject(parent) { networkManager = new QNetworkAccessManager(this); connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*))); } void MeeTooter::fetchPublicTimeline(const QString &url) { QNetworkRequest request(QUrl(url + "/api/v1/timelines/public")); // 使用 Mastodon API 获取公共时间线 networkManager->get(request); } void MeeTooter::onReplyFinished(QNetworkReply *reply) { if (reply->error() == QNetworkReply::NoError) { QByteArray responseData = reply->readAll(); // 使用 QJson 库解析 JSON 数据 QJson::Parser parser; bool ok; QVariant result = parser.parse(responseData, &ok); if (ok && result.type() == QVariant::List) { QVariantList timeline = result.toList(); QVariantList parsedTimeline; foreach (const QVariant &item, timeline) { QVariantMap itemMap = item.toMap(); parsedTimeline.append(itemMap["content"]); // 假设 content 是你想显示的字段 } emit timelineFetched(parsedTimeline); } else { qDebug() << "Error parsing JSON data"; } } else { qDebug() << "Network error occurred:" << reply->errorString(); } reply->deleteLater(); }