未在此范围内声明“ StaticJsonBuffer”

时间:2018-10-16 07:35:00

标签: arduino esp8266

我在NodeMCU ESP8266模块上制作了一个Web服务器来发送一些信息。 我可以发送JSON字符串,但如果尝试创建StaticJsonBuffer,则会收到未声明但包含的错误。 ArduinoJson版本6.5.0-beta。

这是我代码的一部分:

void getData(){
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["Temperature"] = Temperature;
  root["Humidity"] = Humidity;
  String json;
  root.prettyPrintTo(json);
  if(server.hasArg("plain") == false){
    server.send(200, "application/json", json);
    return;
  }

2 个答案:

答案 0 :(得分:1)

因此,我在ArduinoJson.org上进行了一些搜索,发现建议使用ArduinoJson 5.x版。由于版本6.x是beta版本,因此存在一些更改和错误...

答案 1 :(得分:0)

您可以改用Dynamic JSON Buffer,而不必在其中初始化大小。 6.5.0不是稳定的版本。因此,最好使用版本5,它们是稳定的版本,并且具有所有功能。动态JSON缓冲区在6.5.0 Beta版中可以正常工作。

void getData(){
    DynamicJsonBuffer jsonBuffer;
    JsonObject& root = jsonBuffer.createObject();
    root["Temperature"] = Temperature;
    root["Humidity"] = Humidity;
    String json;
    root.prettyPrintTo(json);
    if(server.hasArg("plain") == false){
        server.send(200, "application/json", json);
        return;
    }