Ho bisogno di analizzare alcuni JSON non validi in Ruby.Come analizzare JSON non valido con chiavi non quotate utilizzando ActiveSupport 3 (Rails)
Qualcosa di simile:
json_str = '{name:"Javier"}'
ActiveSupport::JSON.decode json_str
Come si può vedere, è invalido perché la chiave hash non è citato, dovrebbe essere
json_str = '{"name":"Javier"}'
Ma questo non può essere cambiato e devo analizzare le chiavi non quotate.
Potrei analizzarlo con ActiveSupport 2.x, ma ActiveSupport 3 non mi consente. Mi butta:
Yajl::ParseError: lexical error: invalid string in json text.
{name:"Javier"}
(right here) ------^
Tra l'altro, si tratta di un'applicazione di Ruby utilizzando alcune librerie Rails, ma non è un'applicazione Rails
Grazie in anticipo
Da dove proviene questo json non valido? A riposo o qualche file? Sarebbe meglio riparare effettivamente JSON, un parser che accetta json non valido è cattivo e sono contento che stiano usando Yajl ora. –
Sì, è un'API. E sì, puzza che devo fare una soluzione per questo, ma non ho alcun contatto con gli sviluppatori dell'API. –