| Termin | Definicja |
|---|---|
| brak jednoznacznego formatu JSON | Brak jednoznacznego formatu JSON to usterka struktury danych utrudniająca ich spójne przetwarzanie przez różne systemy. Na czym polega brak jednoznacznego formatu JSONBrak jednoznacznego formatu JSON oznacza sytuację, w której dane zapisane w JavaScript Object Notation nie mają jasno określonej i konsekwentnie stosowanej struktury. JSON jest tekstowym formatem wymiany danych opartym na obiektach, tablicach, parach klucz–wartość, łańcuchach znaków, liczbach oraz wartościach logicznych Problem pojawia się na przykład wtedy, gdy w jednym dokumencie pole Składnia JSON a znaczenie przechowywanych danychDokument JSON musi zachowywać określone reguły składniowe. Obiekt jest zapisywany w nawiasach klamrowych, tablica w nawiasach kwadratowych, nazwy właściwości muszą być ujęte w cudzysłowy, a elementy w obiekcie oddziela się przecinkami. Nieprawidłowy przecinek, brakujący cudzysłów, niezamknięty nawias albo użycie komentarza może spowodować błąd parsowania, czyli odrzucenie całego dokumentu przez bibliotekę odczytującą JSON. Jednoznaczność wymaga jednak dodatkowego poziomu opisu. Poprawny składniowo dokument W praktyce warto oddzielić walidację składniową od walidacji strukturalnej i biznesowej. Parser sprawdza, czy tekst jest poprawnym JSON-em. Schemat danych może dodatkowo określić, że pole jest wymagane, ma typ Jak niejednoznaczność zaburza przepływ danychJeżeli nadawca i odbiorca nie stosują tej samej struktury, błąd może ujawnić się dopiero w dalszej części przepływu danych. Aplikacja może poprawnie pobrać odpowiedź HTTP, odczytać tekst jako JSON i utworzyć obiekt w pamięci, ale następnie nie znaleźć oczekiwanego pola. W zależności od implementacji skutkiem będzie komunikat o braku właściwości, wartość domyślna, pominięcie rekordu albo przerwanie całej operacji. Typowym źródłem trudności jest zmienność kształtu danych. Raz serwer zwraca pojedynczy obiekt, a innym razem tablicę obiektów, ponieważ liczba wyników zależy od zapytania. Innym przypadkiem jest pole, które dla jednego rekordu zawiera tekst, a dla wielu rekordów tablicę. Problematyczne bywają również różne formaty dat, mieszanie jednostek, odmienne kodowanie wartości pustych oraz używanie tej samej nazwy dla danych o różnych znaczeniach. Konsekwencje mogą obejmować błędne wyświetlanie informacji, niepełne wyniki wyszukiwania, nieudane zapisy do pliku, odrzucenie formularza lub przerwanie synchronizacji między programami. Przy analizie problemu należy ustalić, na którym etapie występuje rozbieżność: podczas generowania JSON, przesyłania, parsowania, mapowania na model programu czy późniejszego zapisu. Pomocne są pełne przykłady poprawnych i błędnych dokumentów, logi z nazwą pola oraz informacja o typie wartości, której oczekuje odbiorca. Porządkowanie struktury i sprawdzanie dokumentuUsunięcie problemu zaczyna się od zdefiniowania jednego kontraktu danych. Należy ustalić nazwy pól, ich typy, wymagany poziom zagnieżdżenia, sposób oznaczania braku wartości i format danych takich jak daty lub identyfikatory. Jeżeli odpowiedź może zawierać wiele elementów, warto konsekwentnie używać tablicy, także wtedy, gdy wynik zawiera tylko jeden rekord. Stabilna struktura upraszcza obsługę po stronie programu i ogranicza liczbę wyjątków. Dokumenty należy sprawdzać zarówno parserem JSON, jak i walidatorem odpowiedniego schematu. W testach powinny znaleźć się przypadki z brakującym polem, wartością Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, w tym diagnostykę problemów z oprogramowaniem, które mogą powodować nieprawidłowe odczytywanie lub przetwarzanie plików JSON. Analiza obejmuje ustalenie objawów, sprawdzenie komunikatów błędów oraz rozróżnienie problemu z samym dokumentem od problemu z aplikacją, biblioteką albo konfiguracją systemu. |