ESP32是一款非常強大的微控制器,它能夠通過連接WiFi和藍牙等無線網(wǎng)絡(luò)接口,實現(xiàn)與云端的交互操作。在進行云端交互的過程中,數(shù)據(jù)的傳輸格式有許多種,其中JSON格式是非常常用的一種格式。那么,如何在ESP32上讀取JSON格式的數(shù)據(jù)呢?以下是一個簡單的示例:
// 引入Json.h的頭文件 #include "ArduinoJson.h" void setup() { // 初始化串口 Serial.begin(115200); } void loop() { // 定義一個Json數(shù)據(jù)字符串 const char* jsonData = "{\"name\":\"小明\",\"age\":20,\"gender\":\"male\"}"; // 創(chuàng)建一個JsonDocument,長度為200字節(jié) // 如果你不知道json數(shù)據(jù)的長度,可以使用DynamicJsonDocument StaticJsonDocument<200>doc; // 將Json數(shù)據(jù)字符串反序列化為JsonDocument DeserializationError error = deserializeJson(doc, jsonData); // 如果反序列化失敗,打印錯誤信息 if (error) { Serial.print(F("deserializeJson() failed: ")); Serial.println(error.f_str()); return; } // 從JsonDocument中獲取數(shù)據(jù) const char* name = doc["name"]; // 小明 int age = doc["age"]; // 20 const char* gender = doc["gender"]; // male // 打印獲取到的數(shù)據(jù) Serial.print("Name:"); Serial.println(name); Serial.print("Age:"); Serial.println(age); Serial.print("Gender:"); Serial.println(gender); // 等待2秒鐘 delay(2000); }
在上述代碼中,我們首先定義了一個JSON數(shù)據(jù)字符串,然后使用ArduinoJson庫中的StaticJsonDocument類創(chuàng)建了一個JsonDocument對象,該對象的長度為200字節(jié)。接著,我們使用deserializeJson()函數(shù)將JSON數(shù)據(jù)字符串反序列化為JsonDocument對象,并在反序列化失敗時輸出錯誤信息。最后,我們可以通過在JsonDocument對象中通過key值訪問相應(yīng)的數(shù)據(jù),將數(shù)據(jù)打印在串口監(jiān)視器中。
上一篇vue dana
下一篇python 顯示界片