Работа с JSON со стороны QT
QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
if (reply->error() == QNetworkReply::NoError)
{
// Ниже кусок кода, выводящий в textEdit содержимое полученное с сайта.
// QByteArray content= reply->readAll(); // Получаем содержимое ответа
// Реализуем преобразование кодировки (зависит от кодировки сайта)
// QTextCodec *codec = QTextCodec::codecForName(«windows-1251»);
// ui->textEdit->setPlainText(codec->toUnicode(content.data()) );
// Выводим результат
// А вот тут уже работа с JSON
QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
QJsonObject root = document.object();
ui->textEdit->append(QString::number(root.value(«type»).toInt()));
ui->textEdit->append(QString::number(root.value(«numOfPins»).toInt()));
QJsonValue jv = root.value(«pin»);
QJsonArray ja = jv.toArray();
for(int i = 0; i < ja.count(); i++){
QJsonObject subtree = ja.at(i).toObject(); //Берем подмассив и распарсим его по названиям значений
//ui->textEdit->append(QString::number(i)+» = «+QString::number(ja[i].toInt())); // Вот так можно взять строчку из массива
ui->textEdit->append(subtree.value(«type»).toString() +
» » +
subtree.value(«name»).toString()+
» » +
subtree.value(«value»).toString());
}
}
else
{
ui->textEdit->setPlainText(reply->errorString());// Выводим описание ошибки, если она возникает.
}
reply->deleteLater(); // разрешаем объекту-ответа «удалится»
}