Rozumiem, że w JSON klucze powinny być otoczone podwójnymi cudzysłowami. Jednak używam źródła danych, które ich nie cytuje, co powoduje, że parser Ruby JSON wywołuje błąd. Czy istnieje sposób wykonywania "nie ścisłego" analizowania?Parsowanie JSON bez cytowanych kluczy
Przykład:
>> JSON.parse('{name:"hello", age:"23"}')
JSON::ParserError: 618: unexpected token at '{name:"hello", age:"23"}'
from /Library/Ruby/Gems/1.8/gems/json-1.1.7/lib/json/common.rb:122:in `parse'
from /Library/Ruby/Gems/1.8/gems/json-1.1.7/lib/json/common.rb:122:in `parse'
from (irb):5
>> JSON.parse('{"name":"hello", "age":"23"}')
=> {"name"=>"hello", "age"=>"23"}
>>
(próbowałem za pomocą wyrażenia regularnego dodać cytaty przed parsowania, ale nie mógł on w pełni funkcjonalny).
Jeśli to nie JSON, to nie JSON. To może na pozór przypominać, ale właściwym rozwiązaniem jest naprawienie źródła, tak więc faktycznie daje ono JSON'owi coś nieistniejącego - to wygląda trochę jak JSON-ale-nie jest. –
Niestety nie mam kontroli nad źródłem, to od strony trzeciej. –
http://www.google.com/ig/calculator?hl=pl&q=100AUD=?USD na przykład wymaga tego, o co prosi. @floyd ma rozwiązanie poniżej - i jest akceptowalne – Rabbott