如何使用JSON.parse()和JSON.stringify()
JSON全称JavaScript Object Notation。JSON是一种人类可读的数据格式,通常用于在Web浏览器,客户端和服务器之间交换数据。大多数现代API使用JSON格式作为输出。这就是为什么JSON成为API输出的流行数据格式的原因。
JavaScript提供了两种处理JSON内容的方法。解析和字符串化。这些方法是JSON.parse()和JSON.stringify()。
JSON.parse()方法采用JSON字符串并将其转换为JavaScript对象。
JSON.stringify()方法接受一个JavaScript对象,并将其转换为JSON字符串。
1.使用JSON.parse()
JSON.parse()函数接收输入的JSON数据并将其转换为JavaScript对象。这是将JSON字符串转换为JS对象的简单示例。
// Store JSON data in a JavaScript variable
var json = '{"id": 1, "name": "Dan Radak", "country": "United States"}';
// Convert JSON string to JavaScript object
var obj = JSON.parse(json);
// Access individual values from the JavaScript object
console.log(obj.id); // Outputs: 1
console.log(obj.name); // Outputs: Dan Radak
console.log(obj.country); // Outputs: United States
传递函数–您还可以将函数作为第二(可选)参数传递给JSON.parse()函数,以对每个JSON值执行某些任务。这是一个示例,函数将所有字符串值转换为parse方法的返回对象中的大写形式:
// Store JSON data in a JavaScript variable
var json = '{"id": 1, "name": "Dan Radak", "country": "United States"}';
// Convert JSON string to JavaScript object
var obj = JSON.parse(json, (key, value) => {
if (typeof value === 'string') {
return value.toUpperCase();
}
return value;
});
// Access individual values from the JavaScript object
console.log(obj.id); // Outputs: 1
console.log(obj.name); // Outputs: DAN RADAK
console.log(obj.country); // Outputs: UNITED STATES
我们假设,这可以帮助您了解JSON.parse()方法的用法。接下来,学习另一个方法JSON.stringify()来执行与上述相反的操作。
2.使用JSON.stringify()
JSON.stringify()方法用于将JavaScript对象转换为JSON字符串。您只需将JavaScript对象传递给此函数即可获取JSON数组。
这是JSON.stringify()方法的简单示例:
// Create a JavaScript object
var obj = {id: 1, name: "Dan Radak", country: "United States"}
// Converting JS object to JSON string
var json = JSON.stringify(obj);
console.log(json);
//Expected output: {"id":1,"name":"Dan Radak","country":"United States"}
您还可以传递两个附加参数,一个是替换函数,第二个可以是用于格式化输出的空格值。
使用替代功能–替代功能用于过滤输出值。例如,您可以创建一个函数并将其作为参数传递。此函数将返回任何未定义的字符串值。
//JavaScript object
var obj = {id: 1, name: "Dan Radak", age: 28, country: "United States"}
function replacer(key, value) {
// Filtering out properties
if (typeof value === 'string') {
return undefined;
}
return value;
}
// Using a replacer function
console.log(JSON.stringify(obj, replacer));
//Expected output: {"id":1, "age": 28}
使用数组作为替换器–您还可以传递包含一些键名的数组作为替换器。在这里,stringify()函数将仅返回匹配的键-pare值,这些键作为替代发送。
例如,我们将id和name作为替换函数发送到数组中。在这种情况下,仅将那些值作为JS对象返回,并丢弃其他任何值。
// Create a JavaScript object
var obj = {id: 1, name: "Dan Radak", age: 28, country: "United States"}
// Converting JS object to JSON string with array replacer
console.log(JSON.stringify(obj, ["id", "name"]));
//Expected output: {"id":1, "name": "Dan Radak"}
传递空格参数–您还可以将空格值作为第三个可选参数传递。这有助于使输出更具可读性。
// Create a JavaScript object
var obj = {id: 1, name: "Dan Radak", age: 28, country: "United States"}
// Empty replacer function
function replacer(key, value) {
return value;
}
// Using optional space argument
console.log(JSON.stringify(obj, replacer, ' ');
//Expected output
//{
// "id": 1,
// "name": "Dan Radak",
// "age": 28,
// "country": "United States"
//}
// Using a tab as space argument
console.log(JSON.stringify(obj, replacer, '\t');
//Expected output
//{
// "id": 1,
// "name": "Dan Radak",
// "age": 28,
// "country": "United States"
//}
以上就是JSON.parse()和JSON.stringify()方法的用法。A5互联https://www.a5idc.net/