SORU
6 Temmuz 2010, Salı


Nasıl ruby karma bir nesneyi JSON dönüştürmek için?

Nasıl ruby karma bir nesneyi JSON dönüştürmek için? Aşağıda bu örnek, çalışıyorum ve olmuyor?

Bu RubyDoc bakıyordum ve açıkçası Hash nesne to_json bir yöntem yok. Ama Raylar active_record.to_json destekler ve aynı zamanda hash#to_json destekleyen bloglar okuyorum. ActiveRecord Raylar bir nesne olduğunu anlayabiliyorum, ama Hash Raylar yerli değil, saf Yakut bir nesne. Yapabileceğiniz Raylar hash.to_json ama saf Ruby?

car = {:make => "bmw", :year => "2003"}
car.to_json

CEVAP
6 Temmuz 2010, Salı


Ruby sayısız incelikler biri kendi yöntemleri ile mevcut sınıflar uzatma olasılığı. Denir ki "sınıfı yeniden açılması" ya da maymun-yama (ikincisi can vary ama anlamı).

Yani, burada bir göz atın:

car = {:make => "bmw", :year => "2003"}
# => {:make=>"bmw", :year=>"2003"}
car.to_json
# NoMethodError: undefined method `to_json' for {:make=>"bmw", :year=>"2003"}:Hash
#   from (irb):11
#   from /usr/bin/irb:12:in `<main>'
require 'json'
# => true
car.to_json
# => "{"make":"bmw","year":"2003"}"

Gördüğünüz gibi, json sihirli bir şekilde sahip gerektiren to_json bizim için yöntem Hash getirdi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007