W języku Ruby, czy istnieje sposób sprawdzenia, czy ciąg jest poprawny json przed próbą analizowania go?Sprawdzanie, czy łańcuch jest poprawny json przed próbą analizowania go?
Na przykład uzyskanie niektórych informacji z innych adresów URL, czasami zwraca json, czasami może zwrócić śmieci, które nie jest prawidłową odpowiedzią.
Mój kod:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Jestem prawie pewien, że parsowanie to jedyny sposób, aby się upewnić na pewno, że jest ważny. Dlaczego nie przeanalizować go i obsłużyć błąd parsowania informujący, że jest on nieprawidłowy? –
na przykład w ten sposób 'JSON.parse (string) rescue zero' – gotva
Teoretycznie powinien istnieć sposób. Parsowanie ciągu powoduje, że informacje są odpowiednio silniejsze niż wiedza, czy jest on parsable, czy nie. W terminologii Chomsky'ego, dotyczącej języka naturalnego, rozróżnienie to odpowiada silnej i słabej zdolności generacyjnej. Co jednak jest złego w naprawianiu błędu, tak jak w komentarzach powyżej? – sawa