Я пытаюсь преобразовать объект в JSON, а затем снова проанализировать его. Проблема в том, что когда я разбираю строку JSON, у меня остается хэш, а не мой исходный объект. Я нашел этот простой пример на json.rubyforge.com и попробовал:Странное поведение JSON?
require 'json'
class Range
def to_json(*a)
{
'json_class' => self.class.name,
'data' => [ first, last, exclude_end? ]
}.to_json(*a)
end
def self.json_create(o)
new(*o['data'])
end
end
puts JSON.parse((1..10).to_json) == (1..10)
Это не удается, а, возвращаясь false
. Глядя дальше, не кажется, что вызывается json_create
.
На данный момент я полагаю, что мне нужно пропустить что-то мертвое просто или я где-то столкнулся с ошибкой. Я использую Ruby 1.9.3. У кого-нибудь есть идеи?
Я попробовал то же самое в '1.9.3'. 'JSON.parse ((1..10) .to_json) == (1..10)' дает 'true' – codeit
' 2.0.0' версия отлично работает и возвращает true. – mudasobwa
Я также просто запускаю этот код на 1.9.3, и он работает классно. 1) Есть ли в вашем распоряжении какие-либо другие библиотеки? 2) Какая версия рубина? 1.9.3-P385? p392? Были проблемы с безопасностью, связанные с функциями библиотеки json, которые вы используете, поэтому она может быть обновлена и работать несколько иначе, в зависимости от того, какая версия рубина и/или JSON-камень вы установили. –