Я здивований, що ніхто не вказав на []
метод JSON , що робить його дуже простим і прозорим для декодування та кодування з / в JSON.
Якщо об'єкт схожий на рядок, проаналізуйте рядок і поверніть проаналізований результат як структуру даних Ruby. В іншому випадку генеруйте текст JSON з об’єкта структури даних Ruby та поверніть його.
Врахуйте це:
require 'json'
hash = {"val":"test","val1":"test1","val2":"test2"} # => {:val=>"test", :val1=>"test1", :val2=>"test2"}
str = JSON[hash] # => "{\"val\":\"test\",\"val1\":\"test1\",\"val2\":\"test2\"}"
str
тепер містить закодований JSON hash
.
Повернути його легко за допомогою:
JSON[str] # => {"val"=>"test", "val1"=>"test1", "val2"=>"test2"}
to_s
Для класу потрібно визначити спеціальні об'єкти , і всередині нього перетворити об'єкт у Hash, а потім використовувати to_json
на ньому.
value = '{"val":"test","val1":"test1","val2":"test2"}'
могла бути читабельнішою.