اذهب إلى المحتوى
  • 0

لا يمكن قراءة JSON باستخدام rubylang

حسين محمد الباز

السؤال

Recommended Posts

  • 0

لغة JSON هي طريقة للتواصل بين لغات البرمجة المختلفة. عن طريقها يمكنك كتابة كود في PHP ومن ثم تحويل المعلومات لـ Ruby وبعدها لـ JavaScript بكل سهولة. للعمل بـ JSON، تحتاج اولاً الى ترجمتها الى اللغة التي تعمل بها. على سبيل المثال، اذا كان عندك كائن في JSON، فعليك اولاً تحويله الى Hash ليعمل بداخل Ruby.

لذا، لا يمكنك قراءة محتوى ملف JSON والعمل به فوراً. عليك اولاً ترجمته  باستخدام مكتبة JSON بهذا الشكل:

require 'json'

# قراءة محتوى الملف
plain = File.read('./db.json')

# قم بالترجمة
json = JSON.load(plain)

# الآن يمكنك القراءة بسهولة
puts json['name']

# يمكنك ايضاً تحويل الى JSON مرة أخرى هكذا
JSON.generate({:hello => "world"});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لنفرض أن لديك البيانات بشكل JSON 

res  = {"status":"ok',"result":{"id":5851,"title":"Json In Ruby","photo":"300312577_abc.png"}}

لا يمكن الوصول لعناصر JSON مباشرة من السلسلة بل يجب عمل parsing لها (تفسيرها لغرض json) أي بناء غرض مصفوفة يمثلها وكمثال:

#!/usr/bin/env ruby

require 'rubygems'
require 'json'

res  = {"status":"ok',"result":{"id":5851,"title":"Json In Ruby","photo":"300312577_abc.png"}}

newRes = JSON.parse(res)

puts newRes['status']

puts newRes['id']

حيث استعملنا الدالة JSON.parse .

مثال لجلب البيانات من الانترنت باتصال HTTP

uri = URI.parse("some_url")
req = Net::HTTP::Post.new(uri.request_uri)

req.set_form_data('field1' => 'data1', 'field2' => 'data2' )    

res = Net::HTTP.start(uri.host, uri.port) do |http|
        http.request(req)
      endcase res

 when Net::HTTPSuccess, Net::HTTPRedirection
      puts "OK"
      puts res.body
      puts status = JSON.parse(res.body)['status']
      puts tuid = JSON.parse(res.body)['result']['tuid']
  else   
      puts res.message
  end

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لابد من تسطيب مكتبة json أولا 
 

gem install json

ثم كتابة الكود 
 

require 'json'

file = File.read('./file-name-to-be-read.json')# قراءة file 
data_hash = JSON.parse(file) # Hash تحويل إلي 

# نفترض أن هذا شكل file 

# {
#   "author":"Isaac Asimov",
#   "url":"https://isaacbooks.com",
#   "books":
#     {
#       "1":"Fantastic Voyage",
#       "2":"The Robots of Dawn",
#       "3": "Pebble In The Sky"
#     }
# }

puts data_hash['author'] # => author

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...