Home >Web Front-end >Front-end Q&A >javascript object 转 string

javascript object 转 string

PHPz
PHPzOriginal
2023-05-21 12:18:371841browse

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.

Using JSON.stringify()

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.

Custom object conversion

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.

JSON string with indentation

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.

Conclusion

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:html to word javaNext article:html to word java