Trong Ruby, có cách nào để kiểm tra xem một chuỗi có phải là json hợp lệ trước khi cố gắng phân tích cú pháp không?Kiểm tra xem một chuỗi có phải là json hợp lệ trước khi cố phân tích cú pháp không?
Ví dụ lấy một số thông tin từ một số url khác, đôi khi nó trả về json, đôi khi nó có thể trả về rác không phải là phản hồi hợp lệ.
Mã của tôi:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Tôi chắc chắn phân tích cú pháp đó là cách duy nhất để biết chắc chắn nó hợp lệ. Tại sao không phân tích cú pháp và xử lý lỗi phân tích cú pháp cho bạn biết rằng nó không hợp lệ? –
ví dụ theo cách này 'JSON.parse (chuỗi) giải cứu nil' – gotva
Về mặt lý thuyết, cần có một cách. Phân tích chuỗi một kết quả trong một thông tin mạnh mẽ hơn là biết liệu nó có thể phân tích cú pháp hay không. Trong thuật ngữ của Chomsky, về ngôn ngữ tự nhiên, sự khác biệt này tương ứng với khả năng sinh sản mạnh so với yếu. Tuy nhiên, có vấn đề gì với việc giải cứu lỗi như với các bình luận ở trên? – sawa