【发布时间】:2018-04-11 20:00:09
【问题描述】:
我正在尝试将以下参考 JSON 提取到数据表中。我遇到的问题是每只股票的数据都在它自己的数组中,并且数组名称(代码)是动态的。在此示例中,仅列出了 3 只股票,但 JSON 通常包含大约 100 只。
我已经能够使用下面的脚本通过定位特定股票来显示单行,但由于每个股票不是一个对象而是一个数组,我不能简单地输入一个 0(即。{“数据”:“0.quote.symbol" }) 为四列中的每一列填充 JSON 中的所有股票。有没有办法可以引用当前形式的 JSON?如果没有,我该如何转换它以使其成为可访问的格式?
提前致谢!
$(document).ready(function() {
var table = $('#headlines-table').DataTable( {
"ajax": {
"url": '/php/rt.php',
"dataSrc": "data",
},
"columns": [
{ "data": "AAPL.quote.symbol" },
{ "data": "AAPL.quote.latestPrice" },
{ "data": "AAPL.quote.latestVolume" },
{ "data": "AAPL.quote.avgTotalVolume" }
]
} );
} );
JSON 输入:
{"data":[{
"AAPL":{"quote":{"symbol":"AAPL","latestPrice":172.5,"latestVolume":17376726,"avgTotalVolume":33742427}},
"BA":{"quote":{"symbol":"BA","latestPrice":326.63,"latestVolume":3383911,"avgTotalVolume":6309861}},
"CA":{"quote":{"symbol":"CA","latestPrice":34.45,"latestVolume":1397950,"avgTotalVolume":2698759}}
}]}
rt.php:
$json = file_get_contents('https://api.iextrading.com/1.0/stock/market/batch?types=quote&filter=symbol,latestPrice,latestVolume,avgTotalVolume&symbols=aapl,ba,ca');
$data[data] = array(json_decode($json));
$obj = json_encode($data);
echo $obj;
【问题讨论】:
-
你能修改rt.php吗? IMO,我认为从那里返回正确的 json 结构而不是用 javascript 转换它会更容易。
-
@nanocv 我确实可以访问 rt.php,但我无法更改 JSON 结构。现在所有 rt.php 所做的就是从 IEX 获取 JSON 响应并将其放入“数据”对象中,以便数据表读取它。我已将 rt.php 的代码添加到上面的帖子中。
标签: javascript php json datatables transform