JSON. stringify()
Zamienia wartość JavaScript, np. obiekt lub tablicę, na napis w formacie JSON.
- Zwraca
- Napis w formacie JSON (albo
undefined, gdy przekażesz np. samą funkcję). - Zmienia oryginał
- Nie
Przykład
#const student = { name: 'Ania', level: 7, courses: ['HTML', 'CSS'], premium: false }
const json = JSON.stringify(student)
console.log(json)
console.log(typeof json)Definicja i zastosowanie
#Metoda JSON.stringify() zamienia obiekt lub tablicę na tekst w formacie JSON. W tej postaci dane można wysłać do serwera przez fetch(), zapisać w localStorage albo w pliku. Operację odwrotną wykonuje JSON.parse().
Nie wszystko da się zapisać w JSON. Właściwości o wartości undefined, funkcje i symbole są pomijane (a w tablicach zamieniane na null), NaN i Infinity stają się null, a daty zamieniają się na napisy w formacie ISO. Map i Set dają pusty obiekt {}, a obiekt, który odwołuje się sam do siebie, powoduje błąd TypeError.
Drugi argument (replacer) pozwala wybrać lub przekształcić zapisywane pola: tablica nazw zostawia tylko te klucze, a funkcja może zmienić albo pominąć każdą wartość. Trzeci argument (space) dodaje wcięcia, dzięki czemu wynik jest czytelny dla człowieka.
Składnia
#JSON.stringify(value)
JSON.stringify(value, replacer)
JSON.stringify(value, replacer, space)Parametry
#value
dowolna wartość
Dane do zamiany na JSON, najczęściej obiekt lub tablica.replacer
opcjonalny, funkcja lub tablica
Funkcja(key, value)przekształcająca wartości albo tablica nazw kluczy do zachowania. Podajnull, żeby go pominąć.space
opcjonalny, liczba lub napis
Wcięcie dla czytelnego formatowania, np.2oznacza dwie spacje.
Więcej przykładów
#const settings = { theme: 'dark', sound: true }
console.log(JSON.stringify(settings, null, 2))const quiz = {
title: 'Quiz z pętli',
deadline: new Date(Date.UTC(2026, 8, 28)),
onFinish() {},
bonus: undefined,
score: NaN,
tags: new Set(['js'])
}
console.log(JSON.stringify(quiz))const user = { id: 7, name: 'Ola', password: 'tajne123', email: 'ola@example.com' }
console.log(JSON.stringify(user, ['id', 'name']))
console.log(JSON.stringify(user, (key, value) => (key === 'password' ? undefined : value)))Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Przed zapisem
MaplubSetzamień je na zwykłe struktury:Object.fromEntries(map)albo[...set]. - Do podglądu dużych obiektów użyj
JSON.stringify(obj, null, 2). Zobaczysz całą strukturę z wcięciami. JSON.parse(JSON.stringify(obj))to stary sposób na głęboką kopię, który gubi daty,undefinedi funkcje. Lepiej użyjstructuredClone().
Powiązane hasła
#- JSON.parse()Zamienia napis w formacie JSON na wartość JavaScript, np. obiekt lub tablicę.
- structuredClone()Tworzy głęboką kopię wartości, łącznie z zagnieżdżonymi obiektami, datami, Map i Set.
- fetch()Wysyła zapytanie HTTP i zwraca obietnicę z odpowiedzią serwera (obiektem Response).
- localStoragePamięć przeglądarki na pary klucz i wartość, która przetrwa odświeżenie strony i ponowne uruchomienie przeglądarki.
- MapKolekcja par klucz i wartość, w której kluczem może być dowolna wartość, a kolejność dodawania jest zachowana.
Widzisz błąd albo brakuje przykładu? Napisz do nas.