Stringifying

Konwersja obiektów JavaScript na format JSON jest kluczowa elementem pracy z danymi w aplikacjach webowych. Funkcja JSON.stringify() jest tutaj naszym głównym narzędziem. W praktyce, gdy mamy obiekt JavaScript, który chcemy wysłać na serwer lub zapisać w local storage, używamy JSON.stringify() do przekształcenia go w łańcuch JSON.

let user = {
	name: 'Anna',
	age: 25,
	isAdmin: true
};

let json = JSON.stringify(user);
console.log(json); // {"name":"Anna","age":25,"isAdmin":true}

Serializacja obiektu do formatu JSON jest procesem prostym, ale ważnym. JSON.stringify() bierze obiekt JavaScript i przekształca go w łańcuch tekstowy w formacie JSON. To znaczy, że każda właściwość obiektu staje się łańcuchem, a wartości numeryczne, logiczne czy też inne obiekty są odpowiednio konwertowane.

Zrozumienie parametrów JSON.stringify() dla niestandardowej serializacji

Funkcja JSON.stringify() posiada dodatkowe parametry, które pozwalają na dostosowanie procesu serializacji.

👉 Drugi parametr: funkcja zamieniająca (Replacer)

Jeśli chcesz, aby proces serializacji był bardziej selektywny lub modyfikował dane w specyficzny sposób, możesz użyć funkcji zamieniającej. Jest to funkcja, która jest wywoływana dla każdej pary klucz-wartość w obiekcie i może modyfikować wartość, która zostanie zserializowana.

let user = {
	name: 'Anna',
	age: 25,
	isAdmin: true
};

function replacer(key, value) {
	if (typeof value === 'string') {
		return undefined;
	}
	return value;
}

let json = JSON.stringify(user, replacer);
// {"age":25,"isAdmin":true}

👉 Trzeci parametr: wcięcie (space)

Ostatni parametr, który może być użyteczny, to space. Umożliwia on formatowanie wynikowego łańcucha JSON w bardziej czytelny sposób, dodając wcięcia i przerwy. Jest to szczególnie przydatne podczas debugowania lub gdy chcemy, aby nasze dane były łatwe do odczytania przez ludzi.

let json = JSON.stringify(user, null, 2);
console.log(json);
/*
{
  "name": "Anna",
  "age": 25,
  "isAdmin": true
}
*/

Masz pytania lub uwagi?

discord icon Przejdź na Discord
Masz pytanie? Napisz do nas 👇
kontakt@frontstack.pl
Copyright © 2023 Frontstack