Arduino & IoT Academy · บทเรียน

แยกวิเคราะห์การตอบกลับ JSON

ดึงฟิลด์ต่าง ๆ ด้วย ArduinoJson

บทเรียน 3 จาก 413 ขั้นตอน

แยกวิเคราะห์การตอบกลับ JSON เป็นบทเรียน Arduino & IoT Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Arduino & IoT Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

การตอบกลับมีเพียงข้อความ

การตอบกลับจากเซิร์ฟเวอร์มาถึงในรูป สตริง ยาวหนึ่งชุด หากต้องการใช้ค่าภายในสตริง คุณต้องดึงค่านั้นออกมาอย่างถูกต้องก่อน

ทำไมไม่ค้นหาด้วยตนเอง

การค้นหาข้อความด้วย indexOf ไม่ยืดหยุ่นและอาจผิดพลาดได้ง่าย ส่วน ตัวแยกวิเคราะห์ JSON ที่เหมาะสมจะเข้าใจโครงสร้างและมอบฟิลด์ให้คุณอย่างปลอดภัย

รู้จัก ArduinoJson

ไลบรารี ArduinoJson จะแปลงสตริง JSON เป็นออบเจ็กต์ที่อ่านค่าด้วยคีย์ได้ ติดตั้งไลบรารีนี้จากตัวจัดการไลบรารี

#include <ArduinoJson.h>

สร้างเอกสาร

สร้าง JsonDocument เพื่อเก็บข้อมูลที่แยกวิเคราะห์แล้ว นี่คือภาชนะที่ ArduinoJson จะเติมข้อมูลให้คุณ

JsonDocument doc;

แยกวิเคราะห์สตริง

เรียกใช้ deserializeJson() พร้อมเอกสารและข้อความตอบกลับของคุณ คำสั่งนี้จะอ่านสตริงและเติมข้อมูลลงในเอกสาร

deserializeJson(doc, body);

ตรวจสอบข้อผิดพลาด

deserializeJson จะคืนค่า ข้อผิดพลาด ซึ่งคุณควรทดสอบ JSON ที่ไม่ถูกต้องหรือไม่ครบถ้วนควรถูกตรวจจับก่อนที่จะเชื่อถือฟิลด์ใด ๆ

if (deserializeJson(doc, body)) {
  return; // parse failed
}

อ่านฟิลด์ด้วยคีย์

เข้าถึงค่าด้วย คีย์ ของค่า เช่นเดียวกับพจนานุกรม และบอก ArduinoJson ว่าคุณคาดหวังชนิดข้อมูลใดสำหรับฟิลด์นั้น

float temp = doc["temp"];

อ่านค่าที่ซ้อนกัน

สำหรับ JSON ที่มีข้อมูลซ้อนกัน ให้เรียง คีย์ ต่อกัน วงเล็บแต่ละคู่จะนำคุณลงไปอีกหนึ่งระดับในโครงสร้างจนถึงค่าที่ต้องการ

int id = doc["device"]["id"];

วนดูข้อมูลในอาร์เรย์

หากฟิลด์เป็น อาร์เรย์ JSON คุณสามารถวนดูด้วยลูป for และอ่านสมาชิกแต่ละตัวตามลำดับ

for (JsonVariant v : doc["list"].as<JsonArray>()) {
}

กำหนดขนาดเอกสารให้เหมาะสม

JsonDocument ใช้ หน่วยความจำ ควรกำหนดขนาดให้ใหญ่พอสำหรับข้อมูลเท่านั้น เนื่องจาก RAM ในไมโครคอนโทรลเลอร์มีจำกัด

ต้องระวังเมื่อใช้สตริง

ให้ถือว่า สตริง ที่แยกวิเคราะห์แล้วใช้งานได้ตราบเท่าที่ข้อความต้นฉบับยังมีอยู่ หากต้องการเก็บไว้นานกว่านั้น ให้คัดลอกค่าออกมา

ตรวจสอบอย่างรวดเร็ว

ฟังก์ชันใดเป็นผู้แปลงข้อความ JSON ให้กลายเป็นเอกสารที่อ่านได้จริง

สรุป

คุณใช้ ArduinoJson เพื่อแยกวิเคราะห์การตอบกลับ ตรวจสอบข้อผิดพลาด และอ่านฟิลด์กับอาร์เรย์ด้วยคีย์ ตอนนี้ข้อความดิบกลายเป็นข้อมูลจริงแล้ว 🎉

เริ่มต้นได้ฟรี

เรียนรู้ C++ ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “แยกวิเคราะห์การตอบกลับ JSON” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แยกวิเคราะห์การตอบกลับ JSON” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Arduino & IoT Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แยกวิเคราะห์การตอบกลับ JSON”

ดึงฟิลด์ต่าง ๆ ด้วย ArduinoJson คุณปฏิบัติ Arduino & IoT Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Arduino & IoT Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Arduino & IoT Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “แยกวิเคราะห์การตอบกลับ JSON” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Arduino & IoT Academy นี้ได้ไหม

ได้ บทเรียน Arduino & IoT Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. รับข้อมูล GET จาก API
  2. ส่งค่าที่อ่านได้จากเซนเซอร์ด้วย POST
  3. แยกวิเคราะห์การตอบกลับ JSON
  4. ใช้ HTTPS อย่างปลอดภัย
← กลับไปที่ Arduino & IoT Academy