การอ่านและเขียน JSON
JSON.parse และ generate
การอ่านและเขียน JSON เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
JSON คืออะไร
JSON (สัญกรณ์ออบเจ็กต์ JavaScript) คือรูปแบบข้อความน้ำหนักเบาสำหรับแลกเปลี่ยนข้อมูล ซึ่งสอดคล้องกับแฮชและอาร์เรย์ของรูบีได้อย่างเหมาะสม
เรียกใช้ไลบรารี json เพื่อใช้งาน
require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))การแยกวิเคราะห์ข้อความ JSON
JSON.parse แปลงสตริง JSON เป็นออบเจ็กต์ของรูบี: ออบเจ็กต์จะกลายเป็นแฮช และอาร์เรย์จะกลายเป็นอาร์เรย์
require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])การสร้างข้อความ JSON
JSON.generate (หรือ to_json บนออบเจ็กต์) แปลงข้อมูลรูบีเป็นสตริง JSON ขนาดกะทัดรัด
require 'json'
arr = [1, 2, { ok: true }]
puts(arr.to_json)การพิมพ์แบบอ่านง่าย
JSON.pretty_generate สร้าง JSON ที่อ่านง่ายและเยื้องบรรทัด เหมาะอย่างยิ่งสำหรับไฟล์การกำหนดค่าและการแก้จุดบกพร่อง
require 'json'
data = { name: 'Ruby', tags: ['fun', 'oop'] }
puts(JSON.pretty_generate(data))คีย์สัญลักษณ์เมื่อแยกวิเคราะห์
โดยค่าเริ่มต้น คีย์ที่แยกวิเคราะห์แล้วจะเป็นสตริง ส่ง symbolize_names: true เพื่อให้ได้คีย์สัญลักษณ์แทน
require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])โครงสร้างซ้อนกัน
JSON รองรับการซ้อนโครงสร้าง การแยกวิเคราะห์จะสร้างต้นไม้ทั้งหมดของแฮชและอาร์เรย์ขึ้นมาใหม่
require 'json'
text = '{"user":{"name":"Ada","roles":["admin","dev"]}}'
h = JSON.parse(text)
puts(h['user']['name'])
puts(h['user']['roles'][1])การจับคู่ชนิดข้อมูล
ชนิดข้อมูลของ JSON สอดคล้องกับชนิดข้อมูลในรูบี:
- ออบเจ็กต์ → แฮช, อาร์เรย์ → อาร์เรย์
- สตริง → สตริง, จำนวน → จำนวนเต็ม/จำนวนทศนิยม
- จริง/เท็จ → จริง/เท็จ, ค่าว่าง → ค่าว่าง
require 'json'
h = JSON.parse('{"a":1,"b":1.5,"c":null,"d":true}')
puts(h['a'].class)
puts(h['c'].inspect)การเขียน JSON ลงไฟล์
ใช้ pretty_generate ร่วมกับ File.write เพื่อบันทึกข้อมูลลงดิสก์
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'data.json')
File.write(path, JSON.pretty_generate({ ok: true }))
puts(File.read(path))การอ่าน JSON จากไฟล์
อ่านเนื้อหาของไฟล์แล้วแยกวิเคราะห์ในขั้นตอนเดียว
require 'json'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'cfg.json')
File.write(path, '{"port":8081}')
cfg = JSON.parse(File.read(path))
puts(cfg['port'])การจัดการข้อผิดพลาดในการแยกวิเคราะห์
JSON ที่มีรูปแบบไม่ถูกต้องจะทำให้เกิด JSON::ParserError ให้ดักจับข้อผิดพลาดนี้เพื่อจัดการข้อมูลนำเข้าที่ไม่ถูกต้องอย่างเหมาะสม
require 'json'
begin
JSON.parse('{not valid}')
rescue JSON::ParserError => e
puts 'Invalid JSON caught'
endการแปลงไปกลับ
การสร้างแล้วแยกวิเคราะห์ควรคืนข้อมูลที่เทียบเท่ากัน ซึ่งเป็นการตรวจสอบความสมเหตุสมผลที่มีประโยชน์
require 'json'
original = { id: 7, tags: ['a', 'b'] }
back = JSON.parse(original.to_json, symbolize_names: true)
puts(back == original)ตรวจสอบความเข้าใจ
ตัวเลือกใดทำให้ JSON.parse คืนคีย์สัญลักษณ์แทนคีย์สตริง
ทบทวน: การอ่านและการเขียน JSON
คุณสามารถนำข้อมูลเข้าและออกจาก JSON ได้:
JSON.parseแปลงสตริงเป็นออบเจ็กต์ของรูบีto_json/JSON.generateแปลงเป็น JSON ขนาดกะทัดรัดpretty_generateสำหรับผลลัพธ์ที่อ่านง่ายsymbolize_names: trueสำหรับคีย์สัญลักษณ์- ดักจับ
JSON::ParserErrorเมื่อข้อมูลนำเข้าไม่ถูกต้อง
require 'json'
puts(JSON.parse('[1,2,3]').sum)คำถามที่พบบ่อย
บทเรียน “การอ่านและเขียน JSON” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การอ่านและเขียน JSON” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การอ่านและเขียน JSON”
JSON.parse และ generate คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การอ่านและเขียน JSON” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การอ่านและเขียน JSON
- การทำงานกับ CSV
- การกำหนดค่า YAML
- การเลือกรูปแบบข้อมูล