0Pricing
Ruby Academy · บทเรียน

การอ่านและเขียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การอ่านและเขียน JSON
  2. การทำงานกับ CSV
  3. การกำหนดค่า YAML
  4. การเลือกรูปแบบข้อมูล
← กลับไปที่ Ruby Academy