json yakut mücevher kullanarak json için kodlama yaparken bir Struct örneği bir dize olarak görüntülenir: Bu besbelli değil
["#<struct id=1, car='red'>", "#<struct id=2, car='yellow'>", "#<struct id=3, car='green'>"]
require 'json'
array = [#<struct id=1, car='red'>, #<struct id=2, car='yellow'>, #<struct id=3, car='green'>] # assuming real structure code in the array
puts array.to_json
baskılar Ne istiyorsunuz.
Bir sonraki mantıksal adım, yapılandırma örneklerinin JSON'dan yeniden oluşturulmasının yanı sıra JSON'a uygun şekilde serileştirilmesini sağlamaktır. yazdırır
a = [ YourStruct.new(1, 'toy'), YourStruct.new(2, 'test')]
puts a.to_json
[{"id": 1,"car":"toy"},{"id": 2,"car":"test"}]
ve ayrıca serisini:
YourStruct = Struct.new(:id, :car)
class YourStruct
def to_json(*a)
{:id => self.id, :car => self.car}.to_json(*a)
end
def self.json_create(o)
new(o['id'], o['car'])
end
end
Yani artık şu yazabilirsiniz: Bunu yapmak için
Eğer yapının beyanı değiştirebilir JSON:
YourStruct.json_create(JSON.parse('{"id": 1,"car":"toy"}'))
# => #<struct YourStruct id=1, car="toy">
istenilen çıktı geçerli değildir json. Bir dizi mi demek istiyorsun? [...] – tokland