Czym jest JSON? Prosty przewodnik z przykładami
JSON (JavaScript Object Notation) to prosty format tekstowy do zapisywania uporządkowanych danych — takich jak klient, zamówienie czy lista produktów — jako nazw powiązanych z wartościami. Ludziom łatwo go czytać, a programom łatwo go tworzyć i analizować. Gdy aplikacje i usługi wymieniają dane przez sieć, JSON jest zdecydowanie najpopularniejszym formatem.
Dlaczego JSON jest ważny, gdy budujesz z AI
Będziesz się z nim stykać stale, nawet jeśli nigdy nie napiszesz kodu:
- API. Gdy ekrany Twojej aplikacji ładują dane z backendu albo Twój backend wywołuje usługę płatności, e-maili lub AI, dane zwykle podróżują jako JSON. Zobacz czym jest API.
- Pliki ustawień. Wiele plików konfiguracyjnych projektu to JSON — na przykład
package.json, który wylicza zależności projektu JavaScript. - Bazy danych. Postgres może przechowywać JSON w kolumnie (typ
jsonb) dla danych, które nie pasują do równych wierszy i kolumn. Zobacz czym jest Postgres. - Wyniki AI. Gdy chcesz, aby model AI zwrócił coś, co program może wykorzystać — listę tagów, wyciągnięte pola z faktury — zwykle prosisz o JSON.
- Komunikaty o błędach i logi. Wiele błędów przychodzi jako JSON, a ich czytanie to często najszybszy sposób, by dowiedzieć się, co poszło nie tak.
Umiejętność czytania JSON pozwala sprawdzić, co aplikacja faktycznie otrzymała, zauważyć brakujące pole i precyzyjnie opisać problem narzędziu do budowania z AI.
Codzienna analogia
Wyobraź sobie papierowy formularz: Imię: ____, Telefon: ____, Newsletter: ☐ tak ☐ nie. Każde pole to etykieta z wartością obok. JSON to taki formularz zapisany jako tekst, w ściśle określonym układzie, który komputer może odczytać bez zgadywania. Podobnie jak formularze, JSON może mieć sekcje w sekcjach (blok adresu z ulicą, miastem i kodem pocztowym) oraz listy (kilka numerów telefonu).
Jak wygląda JSON
Oto pojedyncza rezerwacja w JSON:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Jak to czytać:
- Nawiasy klamrowe
{ }otaczają obiekt — zestaw par nazwa/wartość. - Każda para ma postać
"nazwa": wartośći jest oddzielona przecinkami. - Nawiasy kwadratowe
[ ]otaczają tablicę — uporządkowaną listę. - Obiekty i tablice mogą być zagnieżdżone, tak jak
contactiextras.
Sześć rodzajów wartości
JSON ma tylko sześć typów wartości. Ta mała lista to duża część tego, dlaczego działa wszędzie.
| Typ | Przykład | Uwagi |
|---|---|---|
| Napis (tekst) | "Lena Park" | Zawsze podwójne cudzysłowy |
| Liczba | 35.5, -2, 1e6 | Bez cudzysłowów; bez symboli walut |
| Wartość logiczna | true, false | Małymi literami, bez cudzysłowów |
| Null | null | „Brak wartości” |
| Obiekt | { "city": "Leeds" } | Nazwane wartości |
| Tablica | [1, 2, 3] | Uporządkowana lista; elementy mogą być dowolnego typu |
Nie ma typu daty. Daty zapisuje się jako napisy, zwykle w formacie ISO 8601 pokazanym wyżej (2026-10-03T14:00:00Z, gdzie Z oznacza UTC). Uzgodnienie tego formatu zapobiega całej kategorii błędów ze strefami czasowymi.
Surowe reguły (skąd biorą się błędy)
JSON jest bardziej wymagający, niż wygląda. Wszystkie poniższe przykłady są nieprawidłowe:
{ name: "Lena" } ← klucz bez podwójnych cudzysłowów
{ 'name': 'Lena' } ← pojedyncze cudzysłowy
{ "a": 1, "b": 2, } ← przecinek na końcu
{ "a": 1 "b": 2 } ← brakujący przecinek
{ "a": 1 // comment } ← komentarze są niedozwolone
Większość błędów „Unexpected token” to jeden z tych przypadków. Walidator lub formatter JSON pokaże dokładną linię.
Przykład: JSON w aplikacji
Klient rezerwuje strzyżenie w aplikacji salonu. Oto miejsca, w których pojawia się JSON:
- Formularz rezerwacji wysyła do backendu aplikacji:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend zapisuje rezerwację w bazie danych i odpowiada statusem
201 Createdoraz:
{ "id": 5001, "status": "confirmed" }
- Jeśli ten termin był już zajęty, może zamiast tego odpowiedzieć statusem
409 Conflicti:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Strona odczytuje status lub error i pokazuje właściwy komunikat. Jeśli zamiast tego strona pokazuje pusty ekran, otwarcie narzędzi deweloperskich przeglądarki (karta Network) pokaże ten JSON — często to najszybsza wskazówka, co poszło nie tak.
Kluczowe pojęcia
| Termin | Znaczenie |
|---|---|
| Klucz | Nazwa w parze nazwa/wartość, np. "email". |
| Parsowanie | Zamiana tekstu JSON na dane, których program może użyć. |
| Serializacja / stringify | Zamiana danych na tekst JSON, aby je wysłać lub zapisać. |
| Payload | Dane przesyłane w żądaniu lub odpowiedzi. |
| Schemat | Opis kształtu danych — jakie pola i jakie typy. JSON Schema to standardowy sposób ich zapisu. |
| JSONB | Binarny typ kolumny JSON w Postgresie, który można indeksować i przeszukiwać. |
| NDJSON / JSON Lines | Jeden obiekt JSON na linię, częsty w logach i strumieniowaniu. |
Typowe nieporozumienia
- „JSON to JavaScript”. Wziął składnię z JavaScriptu, ale jest niezależny od języka; Python, Java, C#, Go i reszta go czytają.
- „Liczby w cudzysłowach są w porządku”.
"35"to napis, a nie liczba. Mieszanie ich powoduje błędy, np."35" + "5"daje"355". Pieniądze często lepiej przechowywać jako pełne grosze (3550), aby uniknąć problemów z zaokrągleniami. - „JSON jest bezpieczny, bo to tylko dane”. JSON może przenosić wszystko, także sekrety. Nie umieszczaj kluczy API w JSON wysyłanym do przeglądarki.
- „Wszystko wrzuć do kolumny JSON”. To wygodne dla elastycznych dodatków, ale dane, po których szukasz, filtrujesz lub łączysz, zwykle powinny mieć własne kolumny.
- „AI zawsze zwraca poprawny JSON”. Modele mogą dodać tekst lub zepsuć format. Wielu dostawców oferuje tryb ustrukturyzowanego wyjścia; Twój kod i tak powinien sprawdzić, co wraca.
O co poprosić narzędzie do budowania z AI
- „Pokaż mi przykład JSON, który zwraca ten endpoint.”
- „Zwracaj błędy jako JSON z kodem
errori czytelnym komunikatemmessage.” - „Zapisuj daty jako napisy ISO 8601 w UTC i zamieniaj na czas lokalny dopiero na ekranie.”
- „Zapisuj ceny jako liczby całkowite w groszach.”
- „Waliduj przychodzący JSON po stronie serwera i odrzucaj żądania z brakującymi lub błędnymi typami pól.”
- „Gdy wywołujesz model AI, poproś o JSON w dokładnie tym kształcie i sprawdź go przed użyciem.”
JSON w Mythex
W Mythex nie musisz pisać JSON ręcznie — opisujesz, czego chcesz, a agent pisze kod, który go wysyła i odczytuje. Warto jednak go rozpoznawać: gdy coś się zepsuje, wklejenie błędu JSON do czatu daje agentowi precyzyjną wskazówkę. Przepis REST API backend w dokumentacji od początku prosi o „czytelne błędy JSON”, a przepis integrate any API opisuje wywoływanie zewnętrznych usług. Szerszy obraz znajdziesz w artykułach REST vs GraphQL i jak debugować aplikację zbudowaną z AI.
Pytania
Czym jest JSON prostymi słowami?
JSON (JavaScript Object Notation) to format tekstowy do zapisywania uporządkowanych danych w postaci nazw i wartości, na przykład "name": "Lena". Prawie każde API w sieci używa go do przesyłania danych tam i z powrotem, a wiele aplikacji używa go do ustawień i zapisanych danych.
Czy JSON to język programowania?
Nie. JSON to format danych, a nie język. Sam nic nie robi — tylko opisuje dane. Choć wywodzi się z JavaScriptu, praktycznie każdy język programowania potrafi go czytać i zapisywać.
Jaka jest różnica między JSON a obiektem JavaScript?
Wyglądają podobnie, ale JSON jest surowszy. W JSON każdy klucz musi być w podwójnych cudzysłowach, napisy również używają podwójnych cudzysłowów, nie ma komentarzy ani końcowych przecinków, a wartości ograniczają się do napisów, liczb, true, false, null, obiektów i tablic.
Dlaczego mój JSON jest nieprawidłowy?
Najczęstsze przyczyny to przecinek po ostatnim elemencie, pojedyncze cudzysłowy zamiast podwójnych, brakujący przecinek między elementami, niezamknięty nawias lub komentarz. Wklej go do walidatora JSON, a wskaże linię z błędem.