In JavaScript, objects are a common data type. We can use objects to represent any entity or concept in the real world. But in some cases we need to convert object to string. For example, when we need to pass object data when saving data or sending network requests, we need to convert the object to a string. This article will explain how to convert JavaScript objects to strings.
JavaScript provides the JSON.stringify()
method to convert JavaScript objects into JSON strings. JSON (JavaScript Object Notation) is a lightweight data exchange format that is easy to read and write, and easy to be parsed and generated by machines. The following is an example of converting a JavaScript object to a JSON string using the JSON.stringify()
method:
let obj = { name: "Tom", age: 25, city: "New York" }; let str = JSON.stringify(obj); console.log(str);
The output is:
{"name":"Tom","age":25,"city":"New York"}
In the above example, We first define a JavaScript object obj
, which contains name, age and city attributes. We then convert the object into a JSON string using the JSON.stringify()
method and assign it to the variable str
. Finally, we use the console.log()
method to output the JSON string to the console.
Please note that the JSON.stringify()
method does not convert functions in JavaScript objects to strings. If the object contains a function, the function will be ignored, for example:
let obj = { name: "Tom", age: 25, city: "New York", sayHello: function() { console.log("Hello!"); } }; let str = JSON.stringify(obj); console.log(str);
The output is:
{"name":"Tom","age":25,"city":"New York"}
In the above example, the object obj
contains a name It is the function of sayHello()
. However, when converting this object to a string using the JSON.stringify()
method, the sayHello()
function is ignored.
In addition, if the object contains circular references, for example:
let obj1 = { name: "Tom", age: 25 }; let obj2 = { name: "Jerry", age: 30 }; obj1.friend = obj2; obj2.friend = obj1; let str = JSON.stringify(obj1); console.log(str);
The output result is:
Uncaught TypeError: Converting circular structure to JSON
In the above example, the objects obj1
and obj2
Reference each other as friends. When converting object obj1
to a string using the JSON.stringify()
method, a type error is thrown due to a circular reference.
Sometimes, the default JSON.stringify()
method cannot meet our needs. For example, when the object contains a custom type that does not support JSON format, we need to customize the object conversion operation. In this case, we can use the second parameter of the JSON.stringify()
method, also known as the "conversion function", to convert the custom object into a JSON object. The following is an example of custom object conversion:
let user = { name: "Tom", age: 25, isAdmin: false, toString: function() { return this.name; } }; let jsonUser = JSON.stringify(user, function(key, value) { if (key == "isAdmin") { return undefined; } if (key == "toString") { return value.toString(); } return value; }); console.log(jsonUser);
The output is:
{"name":"Tom","age":25,"toString":"Tom"}
In the above example, we defined a custom object named user
, including name, age and Boolean type attributes isAdmin
and toString()
methods. Then, we use the JSON.stringify()
method to convert the object to a JSON string, and customize the second parameter as the conversion function. In the conversion function, if the key is isAdmin
, then undefined
is returned, ignoring the attribute; if the key is toString
, the string representation of the function is returned; Otherwise the original value is returned. Finally, we use the console.log()
method to output the JSON string to the console.
By default, the JSON string returned by the JSON.stringify()
method does not contain formatting and indentation. If you need to indent the output JSON string, for example, writing the string to a file or printing it in the browser console, we can use the third parameter to define the indentation level. The following is an example of a JSON string with indentation output:
let user = { name: "Tom", age: 25, city: "New York" }; let str = JSON.stringify(user, null, 2); console.log(str);
The output is:
{ "name": "Tom", "age": 25, "city": "New York" }
In the above example, we defined a JavaScript object user
, which contains name, age, and city attributes. We then convert this object to a JSON string using the JSON.stringify()
method and set the third parameter to 2
to specify the indentation level. Finally, we use the console.log()
method to output the indented JSON string to the console.
This article explains how to convert JavaScript objects to strings. We used the JSON.stringify()
method to convert JavaScript objects into JSON strings, and customized the object conversion operation and indentation level output. These techniques will be very useful in actual development. I hope this article can help you understand the conversion between JavaScript objects and strings more deeply.
The above is the detailed content of javascript object 转 string. For more information, please follow other related articles on the PHP Chinese website!