Javascript 具有动态数组名称的Datatable JSON

Javascript 具有动态数组名称的Datatable JSON,javascript,php,json,datatables,transform,Javascript,Php,Json,Datatables,Transform,我试图将下面的引用JSON拉入数据表。我遇到的问题是,每个股票的数据都在它自己的数组中,数组名称(股票代码)是动态的。在本例中,只列出了3只股票,但JSON通常包含大约100只股票 我已经能够使用下面的脚本以特定股票为目标来显示一行,但是由于每个股票不是一个对象而是一个数组,所以我不能简单地为四列中的每一列键入0(即{“data”:“0.quote.symbol”}),以便用JSON中的所有股票填充表。有没有一种方法可以引用当前形式的JSON?如果没有,我如何转换它,使其成为可访问的格式 提前谢

我试图将下面的引用JSON拉入数据表。我遇到的问题是,每个股票的数据都在它自己的数组中,数组名称(股票代码)是动态的。在本例中,只列出了3只股票,但JSON通常包含大约100只股票

我已经能够使用下面的脚本以特定股票为目标来显示一行,但是由于每个股票不是一个对象而是一个数组,所以我不能简单地为四列中的每一列键入0(即{“data”:“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;

您的问题是,您的结果是数组第一项中的一种字典。您可以在
dataSrc
回调中清理数据:

var table = $('#headlines-table').DataTable( {
  ajax: {
    url: '/php/rt.php',
    dataSrc: function(d) {
      var result = [];
      for (var prop in d.data[0]) {
        result.push(d.data[0][prop].quote);
      }
      return result;
    }
  },
  columns: [
    { data: "symbol" },
    { data: "latestPrice" },
    { data: "latestVolume" },
    { data: "avgTotalVolume" }
  ]
})
上面返回表单上的一个数组


这是一个演示->

您可以修改rt.php吗?在我看来,从那里返回正确的json结构比用javascript转换要容易得多。@nanocv我确实可以访问rt.php,但我无法更改json结构。现在rt.php所做的就是从IEX获取JSON响应,并将其放入datatables的“data”对象中进行读取。我已经在上面的帖子中添加了rt.php的代码。一个完美优雅的解决方案,简单明了。非常感谢。