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
}
*/