Arduino構建與解析Json字串例項
阿新 • • 發佈:2018-12-30
目錄
Json目前在網路通訊中已經是一種非常常見的資料格式了,ArduinoJson庫的作用就是為了在Arduino中輕鬆實現對Json字串的解析和構建。加下來將介紹ArduinoJson的基本功能、解析例項、構建例項。
ArduinoJson
介紹
ArduinoJson(全稱:ArduinoJson-C++ JSON Library for IoT)
是嵌入式系統中優雅和高效的Json庫。它僅使用最基本的API,確保工作時消耗最小的記憶體空間。雖然它的命名中包含“Arduino”,但事實上並沒有引用Arduino的任何庫檔案,因此ArduinoJson可以應用在任何的C++專案中。
支援的平臺
包含但不限於下述環境:
Arduino系列開發板:Uno、DueMini、Micro、Yun等。
ESP系列晶片:ESP8266, ESP32
Teensy
RedBearLab系列開發板:BLE Nano
Intel系列開發板:Edison(愛迪生)、Galileo(伽利略)
WeMos系列開發板:D1、D2
作業系統: Windows, Linux, OSX…
PlatformIO
Particle
Energia
示例程式碼
解析(解碼)
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}" ;
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(json);
const char* sensor = root["sensor"];
long time = root["time"];
double latitude = root["data"][0];
double longitude = root["data"][1];
構建(編碼)
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["sensor" ] = "gps";
root["time"] = 1351824120;
JsonArray& data = root.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);
root.printTo(Serial);
輸出結果:{“sensor”:”gps”,”time”:1351824120,”data”:[48.756080,2.302038]}