A common use of JSON is for exchanging data with a web server.
When sending data to a web server, it must be in string format.
Use JSON.stringify()
to convert a JavaScript object into a string.
Suppose we have the following object in JavaScript:
const obj = {name: “John”, age: 30, city: “New York”}; |
Use the JavaScript function JSON.stringify()
to transform it into a string.
const myJSON = JSON.stringify(obj); |
The result will be a string formatted according to JSON syntax. |
myJSON
is now a string and is ready to be sent to the server.
const obj = {name: “John”, age: 30, city: “New York”}; const myJSON = JSON.stringify(obj); |
In the following chapters, you will learn how to send JSON to a server.
You can also stringify JavaScript arrays.
Suppose we have the following array in JavaScript:
const arr = [“John”, “Peter”, “Sally”, “Jane”]; |
Use the JavaScript function JSON.stringify()
to convert it into a string.
const myJSON = JSON.stringify(arr); |
The result will be a string formatted in JSON syntax. |
myJSON
is now a string and is prepared to be sent to the server.
const arr = [“John”, “Peter”, “Sally”, “Jane”]; const myJSON = JSON.stringify(arr); |
In the upcoming chapters, you will learn how to send a JSON string to a server.
When storing data, it must be in a specific format, and text is always a valid format, regardless of where it is stored.
JSON allows you to store JavaScript objects as text.
Saving data in local storage
// 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; |
In JSON, date objects are not permitted. The JSON.stringify()
function will convert any date objects into strings.
const obj = {name: “John”, today: new Date(), city : “New York”}; const myJSON = JSON.stringify(obj); |
The string can be converted back into a date object on the receiver’s side.
In JSON, functions are not permitted as object values.
The JSON.stringify()
function will omit any functions from a JavaScript object, including both the key and the value.
const obj = {name: “John”, age: function () {return 30;}, city: “New York”}; const myJSON = JSON.stringify(obj); |
This can be avoided by converting your functions into strings before using the JSON.stringify()
function.
const obj = {name: “John”, age: function () {return 30;}, city: “New York”}; obj.age = obj.age.toString(); const myJSON = JSON.stringify(obj); |
If you send functions through JSON, they will lose their scope, and the receiver would need to use eval() to convert them back into functions. |