[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 просмотрел и изучил все


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.