You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历JSON对象所有值传入setData,实现MySQL数据加载到K线图

解决LightweightCharts仅显示单条K线的问题

错误原因

  • 第一版遍历逻辑每次覆盖单个变量,仅保留了数组最后一项的数值,最终传入setData的只有单条数据。
  • 第二版循环调用setData的逻辑不符合API要求:setData为全量替换数据的方法,每次调用都会覆盖之前已传入的所有数据,仅最后一次调用的内容生效;同时之前定义的dateData等变量为单个值而非数组,取下标操作无法获取到正确数值。

正确实现

直接通过map将原始数据批量转换为LightweightCharts要求的K线格式数组,一次性传入setData即可:

const data = <?php echo json_encode($data_array) ?>;

// 批量格式化数据
const klineData = data.map(item => ({
    time: item.Date,
    open: item.Open,
    high: item.High,
    low: item.Low,
    close: item.Close
}));

// 初始化图表并加载数据
const chart2 = LightweightCharts.createChart(document.body, { width: 400, height: 300 });
const candlestickSeries = chart2.addCandlestickSeries();
candlestickSeries.setData(klineData);

如果后续需要新增单条K线数据,不要调用setData,改用candlestickSeries.update(新的K线对象)即可实现增量更新。


内容的提问来源于stack exchange,提问作者user16845627

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:39:03