0Pricing
Ruby Academy · درس

قراءة JSON وكتابته

JSON.parse وgenerate

قراءة JSON وكتابته درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ما هو JSON؟

إنّ JSON (JavaScript Object Notation) تنسيق نصي خفيف لتبادل البيانات. وهو يتوافق بسهولة مع Hashes ومصفوفات Ruby.

استدعِ مكتبة json لاستخدامه.

require 'json'
data = { name: 'Ruby', year: 1995 }
puts(JSON.generate(data))

تحليل نص JSON

يحوّل JSON.parse سلسلة JSON إلى كائنات Ruby: فالكائنات تصبح Hashes، والمصفوفات تصبح Arrays.

require 'json'
text = '{"name":"Ruby","year":1995}'
h = JSON.parse(text)
puts(h['name'])
puts(h['year'])

إنشاء نص JSON

يحوّل JSON.generate (أو to_json على الكائنات) بيانات Ruby إلى سلسلة 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))

مفاتيح Symbol عند التحليل

تكون المفاتيح المحلّلة من النوع String افتراضيًا. مرّر symbolize_names: true للحصول بدلًا من ذلك على مفاتيح من النوع Symbol.

require 'json'
h = JSON.parse('{"name":"Ruby"}', symbolize_names: true)
puts(h[:name])

البُنى المتداخلة

يدعم JSON التداخل. ويعيد التحليل بناء الشجرة الكاملة من Hashes وArrays.

require 'json'
text = '{"user":{"name":"Ada","roles":["admin","dev"]}}'
h = JSON.parse(text)
puts(h['user']['name'])
puts(h['user']['roles'][1])

مطابقة الأنواع

تتطابق أنواع JSON مع Ruby كما يلي:

  • object → Hash، وarray → Array
  • string → String، وnumber → Integer/Float
  • true/false → true/false، وnull → nil
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 يعيد مفاتيح من النوع Symbol بدلًا من مفاتيح String؟

مراجعة: قراءة JSON وكتابته

يمكنك نقل البيانات من JSON وإليه:

  • يحوّل JSON.parse السلسلة إلى كائنات Ruby
  • يحوّل to_json / JSON.generate البيانات إلى JSON مدمج
  • يُستخدم pretty_generate للحصول على إخراج مقروء
  • يُستخدم symbolize_names: true للحصول على مفاتيح Symbol
  • عالج JSON::ParserError عند الإدخال غير الصحيح
require 'json'
puts(JSON.parse('[1,2,3]').sum)

الأسئلة الشائعة

هل درس «قراءة JSON وكتابته» مجاني؟

نعم — نص درس «قراءة JSON وكتابته» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة JSON وكتابته»؟

JSON.parse وgenerate تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «قراءة JSON وكتابته»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. قراءة JSON وكتابته
  2. التعامل مع CSV
  3. تهيئة YAML
  4. اختيار التنسيق
← العودة إلى Ruby Academy