Tôi cần phân tích cú pháp JSON không hợp lệ trong Ruby.Cách phân tích cú pháp JSON không hợp lệ bằng các khóa không được kiểm soát bằng ActiveSupport 3 (Rails)
Cái gì như:
json_str = '{name:"Javier"}'
ActiveSupport::JSON.decode json_str
Như bạn có thể thấy, đó là không hợp lệ vì chìa khóa băm không được trích dẫn, nó phải là
json_str = '{"name":"Javier"}'
Nhưng điều đó không thể thay đổi và tôi phải phân tích các phím không được kiểm soát.
Tôi có thể phân tích cú pháp bằng ActiveSupport 2.x, nhưng ActiveSupport 3 không cho phép tôi. Nó ném cho tôi:
Yajl::ParseError: lexical error: invalid string in json text.
{name:"Javier"}
(right here) ------^
Bằng cách này, nó là một ứng dụng của Ruby sử dụng một số thư viện Rails, nhưng nó không phải là một ứng dụng Rails
Cảm ơn trước
Json không hợp lệ này đến từ đâu? Một phần còn lại api hoặc một số tập tin? Nó sẽ là tốt nhất để thực sự sửa chữa các json, một phân tích cú pháp chấp nhận json không hợp lệ là xấu và tôi vui vì họ đang sử dụng Yajl bây giờ. –
Vâng, đó là một API. Và yeah nó stinks rằng tôi phải thực hiện một workaround cho điều này nhưng tôi không có bất kỳ liên hệ với các nhà phát triển của API. –