【问题标题】:How can I get qjsonvalue to string?如何将 qjsonvalue 转换为字符串?
【发布时间】:2022-01-01 04:22:12
【问题描述】:

我应该怎么做才能获得输出,例如:Bid value is 2248.48? 这是代码:

    QNetworkRequest request = QNetworkRequest(QUrl("https://api.30.bossa.pl/API/GPW/v2/Q/C/_cat_name/WIG20?_t=1637005413888"));
     QNetworkReply* reply = m_manager.get(request);
     QObject::connect(reply, &QNetworkReply::finished, [reply]() {
       QByteArray rawData = reply->readAll();
       QString textData(rawData);
//       qDebug() << textData;
       QJsonDocument doc = QJsonDocument::fromJson(textData.toUtf8());
           auto rootObj = doc.object();
           auto _d = rootObj.value("_d").toArray();
           auto _t = _d[0].toObject().value("_t").toArray();
           auto _quote = _t[0].toObject().value(QString("_quote"));
          qDebug() << _quote;
eply->deleteLater();

现在我得到 QJsonValue (string, "2248.48)

当我尝试这个时:

QJsonObject root = _t[0].toObject().value(QString("_quote"));
           qDebug() << root;
QJsonValue value = obj.value(QString("_quote"));
qDebug() << "Bid value is" << value.toString();;

https://api.30.bossa.pl/API/GPW/v2/Q/C/_cat_name/WIG20?_t=1637005413888

{"message":"OK","_quote_date":null,"_type":"C","_symbol":["WIG20"],"_d":[{"_h":"Własne - 22 listopada 2021 16:42","_hs":"Własne","_max_quote_dtm":"22 listopada 2021","_max_quote_dtm_lc":"22 listopada, 16:42","_ret_quote_dtm":"2021-11-22","_t":[{"_symbol":"WIG20","_symbol_short":"WIG20","_group":"X1","_isin":"PL9999999987","_quote_date":"2021.11.22","_quote_time":"16:42","_time":"16:42","_phase":"Sesja","_quote_max":"2262.74","_quote_min":"2237.64","_quote_open":"2251.08","_quote_ref":"2248.18","_quote_imp":"2254.37","_bid_size":null,"_bid_volume":null,"_bid_orders_nr":null,"_ask_size":null,"_ask_volume":null,"_ask_orders_nr":null,"_volume":null,"_open_positions":null,"_quote_volume":null,"_transactions_nr":null,"_turnover_value":841977698,"_quote":"2254.10","_step":"2","_type_of_instrument":"0","_settlement_price":null,"_change_proc":0.26,"_change_pnts":5.9200,"_30d_change_max":2449.6400,"_30d_change_min":2221.6800,"_change_type":"_change_proc","_quote_type":"_quote","_debut":"0","_live":"1","_sw_symbol_short":0,"_is_indice":"1","_change":"+0.26","_change_suffix":"%","_change_max_min":"+1.12","_change_close_open":"+0.13","_change_settl_ref":null}]}],"_i":[null],"_count":1,"_d_fx":{"_h":null,"_hs":null,"_max_quote_dtm":null,"_max_quote_dtm_lc":null,"_t":[]}}

我收到错误“QJsonValue to non-scalar type QJsonObject requested”

【问题讨论】:

  • 没有看到您正在吃的实际 JSON 文档就无法回答。
  • 我添加了alerady
  • 问题应该是自包含的,因此您不应该期望人们为您进行 API 调用并将其与您的代码相关联。帮助我们帮助你!
  • Api 工作正常,我的意思是,当我调试我的代码时,我得到了输出:QJsonValue(string, 2254.78),我想获得帮助,例如如何让它显示;出价为 2254.78。

标签: c++ json qt


【解决方案1】:

您要么想要_quote.toString()(第一个列表)或root.toString()(第二个列表)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2018-04-30
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多