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

ESP32 LED矩阵股票行情器:如何循环存储不同股票的JSON数据

问题解决:使用数组存储多支股票的JSON数据

你无法用json[x]这种方式创建动态变量名,C++不支持在运行时生成变量名。正确的做法是用JSONVar数组来存储每支股票的数据,这样就能通过索引x访问对应股票的JSON数据了。

修正后的代码示例

情况1:股票数量固定(比如3支)

如果你的股票数量是固定的,直接声明一个静态数组即可:

// 全局声明数组,存储3支股票的JSON数据
JSONVar stockData[3];
// 假设stockdef是存储股票代码的数组,比如String stockdef[3] = {"AAPL", "GOOGL", "MSFT"};

void apiget(void * parameter) {
  while(true){
    // 使用局部变量x,避免全局变量的潜在问题
    for (int x = 0; x < 3; x++) {
      if (WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        String url = "https://finnhub.io/api/v1/quote?symbol=" + stockdef[x] + "&token=APIKEY";
        http.begin(url);
               
        int httpCode = http.GET();
        if(httpCode > 0) {             
          String payload = http.getString();
          // 将解析后的JSON存入数组对应索引位置
          stockData[x] = JSON.parse(payload);
          Serial.println(stockData[x]);  
        }           
        http.end(); // 务必结束HTTP会话
      }  
    }
    delay(10000);
  }
}

情况2:股票数量是变量y

如果股票数量是动态设置的(比如从配置读取),可以使用动态数组:

JSONVar* stockData;
int y = 3; // 你的股票数量,可根据实际情况修改
String stockdef[] = {"AAPL", "GOOGL", "MSFT"}; // 股票代码数组

void apiget(void * parameter) {
  // 初始化动态数组,分配y个JSONVar的空间
  stockData = new JSONVar[y];
  
  while(true){
    for (int x = 0; x < y; x++) {
      if (WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        String url = "https://finnhub.io/api/v1/quote?symbol=" + stockdef[x] + "&token=APIKEY";
        http.begin(url);
               
        int httpCode = http.GET();
        if(httpCode > 0) {             
          String payload = http.getString();
          stockData[x] = JSON.parse(payload);
          Serial.println(stockData[x]);  
        }           
        http.end();
      }  
    }
    delay(10000);
  }
}

后续使用数据

之后你可以通过数组索引访问任意股票的JSON数据,比如:

  • 第一支股票:stockData[0]
  • 转为字符串用于滚动显示:String(stockData[0])
  • 访问JSON中的具体字段(比如当前价格c):stockData[0]["c"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:03:28