Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
[solved]JSON.parse. Кто имел хоть какой-то опыт с ним!?
-
к нам приходит запрос с сервера reply.data
@qml: Enginio finished:{
"query": {
"query": {},
"limit": 100
},
"results": [
{
"population": 70,
"raw": 19.2,
"updatedAt": "2014-12-10T21:26:27.208Z",
"updater": {
"id": "5488b2cb5a3d8b0ee80654d3",
"objectType": "users"
},
"water": 7.2
}
]
}@Как использовать JSON.parse метод чтоб взять значение raw !?
-
@
читаем ответ
QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll());
//берем весь этот json как объект (без первой и последней скобки)
QJsonObject obj = jsonDoc.object();
а дальше указываете ключ и приводите данное к типу
obj["results"].toArray(); //массив
obj["water"].toDouble(); // =7.2
еще можно объект проверять на то что он из себя предствавляет (массив, объект, данное)
data["results"].isArray()
и т.п ....
если объекты вложенные
напр.
{
"objdata1"{
"p1":"fff",
"objdata2"
{
"p2":"ddd"
}
}
}
то
QJsonObject obj0 = jsonDoc.object();
QJsonObject obj1 = obj0["objdata1"].toObject(); //секция objdata1
QJsonObject obj2 = obj0["objdata2"].toObject(); //секция objdata2
//дальше можно вызывать их поля
obj1["p1"].toString(); // = fff
@
-
большое спасибо за ваш опыт
-
Я с qml не работал поэтому могу только порекомендовать посмотреть пример в "qmlbook":http://qmlbook.org/ch11/index.html
Наверно это будет выглядет как-нибудь так
@
var jsonObj = JSON.parse(reply.data.toString())
print(jsonObj.results[0].raw)
@
-
всё верно. спасибо. примеры с qml просмотрел и изучил все