ESP8266是一款高度集成的WiFi模塊,可以在智能家居、物聯網等領域廣泛應用。在開發過程中,常常需要解析JSON數據。雖然ESP8266本身不支持JSON,但是可以借助第三方庫進行解析。
#include <ArduinoJson.h> void setup() { Serial.begin(115200); // 讀取JSON數據 String json = "{\"name\":\"Esp8266\",\"version\":1.0,\"description\":\"WiFi module\"}"; // 解析JSON數據 StaticJsonDocument<128> doc; DeserializationError error = deserializeJson(doc, json); // 判斷解析結果 if (error) { Serial.print("deserializeJson() failed: "); Serial.println(error.c_str()); return; } // 輸出解析的結果 const char* name = doc["name"]; float version = doc["version"]; const char* desc = doc["description"]; Serial.print("Name: "); Serial.println(name); Serial.print("Version: "); Serial.println(version); Serial.print("Description: "); Serial.println(desc); } void loop() { }
在這段代碼中,我們使用ArduinoJson庫來解析JSON數據。首先,在setup()函數中,我們定義了一個JSON字符串。然后,我們創建一個JsonDocument對象,并調用deserializeJson()函數來解析JSON數據。如果解析失敗,我們將輸出錯誤信息。如果解析成功,我們將從JsonDocument對象中獲取數據,并將其輸出到串口。
在這個例子中,我們使用了StaticJsonDocument來創建JsonDocument對象。StaticJsonDocument是一種內存靜態分配方式,可以顯著減少內存碎片和動態內存分配。我們定義一個文檔大小為128字節,足以容納我們的JSON數據。
總之,通過ArduinoJson庫,我們可以輕松地解析JSON數據。這對于ESP8266的應用程序開發非常有用,因為JSON已經成為數據交換的標準格式之一。