arduino 的 json 测试
源程序

1 #include <ArduinoJson.h> 2 String st1,st2,st3; 3 4 const char* cc1; 5 const char* cc2; 6 const char* cc3; 7 int in1,in2,in3,in4; 8 void setup() { 9 10 Serial.begin(115200); 11 12 DynamicJsonDocument doc(1024); 13 14 // WARNING: the string in the input will be duplicated in the JsonDocument. 15 String input = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":\"10\"}"; 16 deserializeJson(doc, input); 17 JsonObject obj = doc.as<JsonObject>(); 18 19 // You can use a String to get an element of a JsonObject 20 // No duplication is done. 21 long time = obj[String("time")]; 22 // 23 //st1=doc["sensor"]; //此句编译不通过,可用以下两句代替,String 对象声明时可用json赋初值,之后不可以;或可采用下面第3句的方法 24 String sensor = doc["sensor"]; 25 st1=sensor; 26 27 st2=doc["data"].as<String>(); 28 st3=doc["time"].as<String>(); 29 30 cc1=doc["sensor"]; 31 cc2=doc["data"]; 32 cc3=doc["time"]; 33 34 in1=doc["time"].as<int>(); 35 in2=doc["time"]; 36 in3=doc["data"].as<int>(); 37 in4=doc["data"]; 38 Serial.println(); 39 Serial.print("st1:"); Serial.println(st1); 40 Serial.print("st2:"); Serial.println(st2); 41 Serial.print("st3:"); Serial.println(st3); 42 Serial.print("cc1:"); Serial.println(cc1); 43 Serial.print("cc2:"); Serial.println(cc2); 44 Serial.print("cc3:"); Serial.println(cc3); 45 Serial.print("in1:"); Serial.println(in1,10); 46 Serial.print("in2:"); Serial.println(in2,10); 47 Serial.print("in3:"); Serial.println(in3,10); 48 Serial.print("in4:"); Serial.println(in4,10); 49 50 double latitude = doc["data"][0]; 51 double longitude = doc["data"][1]; 52 53 // Print values. 54 Serial.println(sensor); 55 Serial.println(time); 56 Serial.println(latitude, 6); 57 Serial.println(longitude, 6); 58 59 obj["sensor"] = "new gps"; 60 obj["code"] = 200; 61 // Lastly, you can print the resulting JSON to a String 62 String output; 63 serializeJson(doc, output); 64 65 Serial.println(output); 66 } 67 68 void loop() { 69 // not used in this example 70 }
串口输出:
16:47:40.786 -> st1:gps
16:47:40.786 -> st2:10
16:47:40.786 -> st3:1351824120
16:47:40.786 -> cc1:gps
16:47:40.786 -> cc2:10
16:47:40.786 -> cc3:
16:47:40.786 -> in1:1351824120
16:47:40.786 -> in2:1351824120
16:47:40.786 -> in3:10
16:47:40.786 -> in4:10
16:47:40.786 -> gps
16:47:40.786 -> 1351824120
16:47:40.786 -> 0.000000
16:47:40.786 -> 0.000000
16:47:40.786 -> {"sensor":"new gps","time":1351824120,"data":"10","code":200}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)