1. 설치
2. 주요 객체
3. 역직렬화(Deserializing)
- JSON 문자열 → 객체
- 역직렬화: 직렬화된 데이터를 원래의 객체나 데이터 구조로 복원하는 과정입니다. 즉, 객체를 파일이나 네트워크 상에서 전송하기 위해 문자열 또는 바이트 배열 형태로 변환된 것을 객체로 다시 변환하는 과정을 의미합니다.
- 직렬화는 객체를 파일 또는 데이터 베이스 등에 저장하거나, 네트워크를 통해 전송하는 등의 작업에서 이용됩니다.
- 역직렬화는 저장된 객체를 다시 메모리에 로드하거나, 네트워크를 통해 전송받은 객체를 복원하는 등의 작업에서 이용됩니다.
#include <ArduinoJson.h>
void setup(){
Serial.begin(115200);
String buf = "{\"sensor\": \"temp\", \"value\": 20.5}";
StaticJsonDocument<256> doc;
auto error = deserializeJson(doc, buf);
if(error)
Serial.print("deserializeJson(doc, buf);
Serial.println(error.c_str());
return;
}
const char* sensor = doc["sensor"];
const char* value = doc["value"];
Serial.println(sensor);
Serial.println(value);
}
void loop() {}
auto name = doc["name"].as<char*>();
auto stars = doc["stargazers"]["totalCount"].as<long>();
auto issues = doc["issues"]["totalCount"].as<int>()
4. 직렬화(Serializing)
#include <ArduinoJson.h>
void setup(){
Serial.begin(115200);
StaticJsonDocument<256> doc;
doc["value"] = 42;
doc["lat"] = 48.748010;
doc["lon"] = 2.293491;
char output[256];
serializeJson(doc, output);
Serial.println(output);
}
void loop() { }
StaticJsonDocument<256> doc;
doc.add(1);
doc.add(2);
doc[0] = 1;
doc[1] = 2;
StaticJsonDocument<256> doc;
JsonObject obj1 = doc.createNestedObject();
obj1["key"] = "a1";
obj1["value"] = analogRead(A1);
JsonObject obj2 = doc.createNestedObject();
obj2["key"] = "a2";
obj2["value"] = analogRead(A2);
StaticJsonDocument<256> doc;
doc[0]["key"] = "a1";
doc[0]["value"] = analogRead(A1);
doc[1]["key"] = "a2";
doc[1]["value"] = analogRead(A2);
char output[256];
serializeJson(doc, output);