JSON .stringify()
Powszechnym zastosowaniem JSON jest wymiana danych z/do serwera WWW.
Wysyłając dane na serwer WWW, dane muszą być ciągiem.
Konwertuj obiekt JavaScript na ciąg znaków za pomocą JSON.stringify()
.
Skrócić obiekt JavaScript
Wyobraź sobie, że mamy ten obiekt w JavaScript:
const obj = {name: "John", age: 30, city: "New York"};
Użyj funkcji JavaScript, JSON.stringify()
aby przekonwertować go na ciąg.
const myJSON = JSON.stringify(obj);
Wynikiem będzie ciąg znaków zgodny z notacją JSON.
myJSON
jest teraz ciągiem znaków i jest gotowy do wysłania na serwer:
Przykład
const obj = {name: "John", age: 30, city: "New York"};
const myJSON =
JSON.stringify(obj);
W kolejnych rozdziałach dowiesz się, jak wysłać JSON na serwer.
Uściślij tablicę JavaScript
Możliwe jest również skrócenie tablic JavaScript:
Wyobraź sobie, że mamy tę tablicę w JavaScript:
const arr = ["John", "Peter", "Sally", "Jane"];
Użyj funkcji JavaScript, JSON.stringify()
aby przekonwertować go na ciąg.
const myJSON = JSON.stringify(arr);
Wynikiem będzie ciąg znaków zgodny z notacją JSON.
myJSON
jest teraz ciągiem znaków i jest gotowy do wysłania na serwer:
Przykład
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON =
JSON.stringify(arr);
W następnych rozdziałach dowiesz się, jak wysłać ciąg JSON na serwer.
Przechowywanie danych
Przechowując dane, dane muszą mieć określony format i niezależnie od tego, gdzie zdecydujesz się je przechowywać, tekst jest zawsze jednym z legalnych formatów.
JSON umożliwia przechowywanie obiektów JavaScript jako tekstu.
Przykład
Przechowywanie danych w pamięci lokalnej
// Storing data:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Wyjątki
Uściślanie dat
W JSON obiekty daty nie są dozwolone. Funkcja JSON.stringify()
przekonwertuje dowolne daty na ciągi.
Przykład
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Ciąg można przekonwertować z powrotem na obiekt daty w odbiorniku.
Funkcje zwięzłe
W JSON funkcje nie są dozwolone jako wartości obiektów.
Funkcja JSON.stringify()
usunie wszystkie funkcje z obiektu JavaScript, zarówno klucz, jak i wartość:
Przykład
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
Można to pominąć, jeśli przekonwertujesz swoje funkcje na ciągi przed uruchomieniem JSON.stringify()
funkcji.
Przykład
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Jeśli wyślesz funkcje za pomocą JSON, funkcje stracą swój zasięg, a odbiorca będzie musiał użyć eval(), aby przekonwertować je z powrotem na funkcje.