繁体   English   中英

如何让我的价格向量 = 我的 json 数组中的值

[英]How can I get my price vector to = values inside my json array

您好,我对 json 解析和一般解析非常陌生,所以我想知道我可以为我正在查看的基础股票价格分配正确值的最佳方法是什么。 下面是我正在使用的代码示例,它们旁边的注释显示了我对什么感到困惑

Json::Value chartData = IEX::stocks::chart(symbolSearched);
int n = 390;
QVector<double> time(n), price(n);

//Time and Date Setup
QDateTime start = QDateTime(QDate::currentDate());
QDateTime local = QDateTime::currentDateTime();
QDateTime UTC(local);
start.setTimeSpec(Qt::UTC);
double startTime = start.toTime_t();
double binSize = 3600*24;
time[0] = startTime;
price[0] = //First market price of the stock at market open (930AM)
for(int i = 0; i < n; i++)  
{
    time[i] = startTime + 3600*i;
    price[i] = //Stores prices of specific company stock price all the way until 4:30PM(Market close)
}

charData 是带有所有数据的 json output,

它看起来像这样 .

我想知道如何获取 json 中的各种值并存储它们,而且由于它的盘中数据,如果由于它是当天早些时候还没有数据,我怎么能得到它不存储 p[i] 的地方,以及每分钟更新一次以连续读取实时数据的最佳方法是什么?

希望我理解正确(如果没有,请纠正我)并且您只想将 json 数据的一些子集保存到您的QVector中。 只需遍历所有 json 元素:

for (int idx = 0; index < chartData.size(); ++idx) {
  time[idx] = convert2Timestamp(chartData[idx]["minute"]);
  price[idx] = convert2Price(chartData[idx]["high"], chartData[idx]["low"],
    chartData[idx]["open"], chartData[idx]["close"], chartData[idx]["average"]);
}

然后你应该定义什么是convert2Timestamp的逻辑(你想如何存储时间信息)和convert2Price的逻辑 - 你想如何存储价格信息,只有最高/最低,只有收盘价,也许所有这些数字组合在一个结构/类中。

然后,如果您想每分钟执行一次类似的逻辑来更新本地记录的数据,也许您应该将其他新项目推送到您的向量中,而不是price[idx] = /* something */

如果某些 json 键可能不存在,则在 JsonCPP 中您可以提供默认值,例如elem.get(KEY, DEFAULT_VAL)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM