Formatuj i wcinaj JSON

zamienia JSON w czytelną, ustrukturyzowaną formę, idealne do inspekcji odpowiedzi REST API, plików konfiguracyjnych i logów

Dlaczego formatowanie JSON?

Formatowanie JSON pozwala uczynić dane JSON bardziej czytelnymi i zrozumiałymi dla programistów i użytkowników. Ułatwia to debugowanie, code review i analizę danych, szczególnie gdy chodzi o złożone i obszerne pliki JSON. Dobrze sformatowany JSON można też łatwiej integrować w dokumentach i raportach.

Jak formatować JSON

Na stronie formatowania możesz sformatować swój JSON, wklejając go w przeznaczonym do tego polu tekstowym lub przesyłając plik zawierający JSON.

Uui

Gdy JSON zostanie przesłany, zostanie sformatowany i wyświetlony w obszarze wyniku. Jeśli JSON jest nieprawidłowy, wyświetlony zostanie błąd ze wskazaniem natury problemu.

Korzystanie ze sformatowanego JSON

Możesz skopiować sformatowany JSON za pomocą dedykowanego przycisku kopiowania. Ułatwi to integrację JSON w twoich projektach lub raportach.

Twój kod JSON powinien wyglądać tak:


{
    "id": 12345,
    "name": "John Doe",
    "email": "johndoe@example.com",
    "address": {
        "street": "123 Main St",
        "city": "Springfield",
        "state": "IL",
        "postalCode": "62704",
        "country": "USA"
    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "555-1234"
        },
        {
            "type": "work",
            "number": "555-5678"
        }
    ],
    "orders": [
        {
            "orderId": 1001,
            "orderDate": "2023-06-01T14:30:00Z",
            "items": [
                {
                    "productId": 2001,
                    "productName": "Laptop",
                    "quantity": 1,
                    "price": 999.99,
                    "details": {
                        "manufacturer": "TechCorp",
                        "warranty": "2 years"
                    }
                },
                {
                    "productId": 2002,
                    "productName": "Mouse",
                    "quantity": 2,
                    "price": 25.50,
                    "details": {
                        "manufacturer": "GadgetCo",
                        "warranty": "1 year"
                    }
                }
            ],
            "totalAmount": 1051.49
        },
        {
            "orderId": 1002,
            "orderDate": "2023-06-10T10:15:00Z",
            "items": [
                {
                    "productId": 2003,
                    "productName": "Keyboard",
                    "quantity": 1,
                    "price": 45.99,
                    "details": {
                        "manufacturer": "KeyMasters",
                        "warranty": "3 years"
                    }
                }
            ],
            "totalAmount": 45.99
        }
    ],
    "preferences": {
        "newsletter": true,
        "notifications": {
            "email": true,
            "sms": false
        },
        "theme": "dark"
    },
    "lastLogin": "2024-06-14T09:30:00Z"
}

    

Najczęściej zadawane pytania

Jaka jest różnica między formaterem, walidatorem a minifikatorem JSON?

Formater (beautifier) przepisuje zwarty JSON na wciętą i czytelną wersję. Walidator tylko sprawdza, czy składnia jest zgodna ze specyfikacją (RFC 8259) i sygnalizuje błędy. Minifikator robi odwrotność formatera: usuwa wszystkie spacje, aby zmniejszyć rozmiar pliku. Nasze narzędzie łączy formatowanie i walidację: jeśli JSON jest nieprawidłowy, komunikat błędu precyzuje pozycję problemu.

Czy standardowy JSON akceptuje komentarze i przecinki końcowe?

Nie. Specyfikacja JSON (RFC 8259) ściśle zabrania komentarzy (// lub /* */) i przecinków końcowych po ostatnim elemencie tablicy lub obiektu. Jeśli ich potrzebujesz, zajrzyj do JSON5 lub JSONC, dwóch rozszerzeń, które akceptują komentarze i przecinki końcowe, używanych zwłaszcza przez pliki konfiguracyjne VS Code i TypeScript.

Dlaczego ciągi muszą używać podwójnych cudzysłowów?

Specyfikacja JSON wymaga podwójnych cudzysłowów (") dla wszystkich ciągów i wszystkich kluczy obiektów. Pojedyncze cudzysłowy (') nie są prawidłowe, nawet jeśli JavaScript je akceptuje. Częsty błąd przy kopiowaniu z kodu JS to zachowanie pojedynczych cudzysłowów: formater sygnalizuje wtedy błąd parsowania.

Jak obsługiwać duże liczby lub bardzo precyzyjne liczby z przecinkiem?

JSON nie rozróżnia liczb całkowitych od zmiennoprzecinkowych: wszystko to number. Parsery JavaScript automatycznie konwertują na Number, który traci precyzję powyżej 2^53 (całkowite) i ma precyzję zmiennoprzecinkową ograniczoną do 15 znaczących cyfr. Dla długich identyfikatorów (Twitter IDs, snowflake Discord) lub kwot finansowych zakoduj je jako ciąg ("123456789012345678"), aby zachować precyzję.

Jakie wcięcie wybrać: 2 czy 4 spacje?

Wcięcie 2-spacjowe to dominująca konwencja (Prettier, ESLint domyślnie, konwencje npm), pozostaje czytelne nawet dla bardzo zagnieżdżonych dokumentów. Wcięcie 4-spacjowe pasuje do dokumentów płaskich, gdzie pionowość pomaga w czytaniu. Najważniejsza jest spójność w obrębie projektu. Nasze narzędzie domyślnie używa 4 spacji, zgodnie z pretty print json_encode(JSON_PRETTY_PRINT) w PHP.

Co zrobić, jeśli mój JSON zawiera znaki Unicode lub emoji?

JSON natywnie obsługuje UTF-8. Emoji, akcenty, znaki CJK i inne nie-łacińskie pisma są zachowywane w niezmienionej formie w sformatowanym wyjściu. Jeśli twój JSON używa Unicode escape (é dla é), pozostaje prawidłowy, ale formater nie przepisuje go na natywny znak. Aby znormalizować, przejdź ponownie przez ścisły parser, taki jak JSON.parse, a następnie JSON.stringify.

Przykładowe zapytanie

curl -X POST https://cdrn.fr/api/v1/tools/json-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Schemat wejściowy

Pole Typ Wymagane Domyślnie
input text

Punkty końcowe

  • GET https://cdrn.fr/api/v1/tools - lista wszystkich dostępnych narzędzi
  • GET https://cdrn.fr/api/v1/tools/json-formatter - zwraca schemat dla tego narzędzia
  • POST https://cdrn.fr/api/v1/tools/json-formatter/execute - uruchamia to narzędzie z payloadem JSON