JavaScript中的JSON解析和序列化

在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON可以表示简单的数据结构,例如数字、字符串、布尔值,也可以表示复杂的数据结构,例如对象和数组。


JSON解析

在JavaScript中,我们可以使用JSON.parse()方法将JSON字符串解析为JavaScript对象。

var jsonStr = '{"name":"Tom","age":18,"isMale":true}';
var jsonObj = JSON.parse(jsonStr);
console.log(jsonObj.name); // 输出Tom

在代码中,我们首先定义了一个JSON字符串jsonStr,然后使用JSON.parse()方法将其解析为一个JavaScript对象jsonObj。最后输出jsonObj中的name属性值,结果为Tom。


JSON序列化

在JavaScript中,我们可以使用JSON.stringify()方法将JavaScript对象序列化为JSON字符串。

var jsonObj = {name: 'Tom', age: 18, isMale: true};
var jsonStr = JSON.stringify(jsonObj);
console.log(jsonStr); // 输出{"name":"Tom","age":18,"isMale":true}

在代码中,我们首先定义了一个JavaScript对象jsonObj,然后使用JSON.stringify()方法将其序列化为一个JSON字符串jsonStr。最后输出jsonStr的值,结果为{"name":"Tom","age":18,"isMale":true}。


JSON.parse()方法的参数说明

JSON.parse()方法接受两个参数,第一个参数是要解析的JSON字符串,第二个参数是一个可选的转换函数,用于对解析出的每个属性值进行转换。

var jsonStr = '{"name":"Tom","age":"18","isMale":"true"}';
var jsonObj = JSON.parse(jsonStr, function(key, value) {
  if (key === 'age') {
    return parseInt(value);
  }
  if (key === 'isMale') {
    return value === 'true';
  }
  return value;
});
console.log(jsonObj.age); // 输出18
console.log(jsonObj.isMale); // 输出true

在代码中,我们首先定义了一个JSON字符串jsonStr,然后使用JSON.parse()方法将其解析为一个JavaScript对象jsonObj。同时我们传递了一个转换函数,用于将字符串类型的age属性值转换为数字类型,将字符串类型的isMale属性值转换为布尔类型。最后输出jsonObj中的age和isMale属性值,结果为18和true。


JSON.stringify()方法的参数说明

JSON.stringify()方法接受三个参数,第一个参数是要序列化的JavaScript对象,第二个参数是一个可选的转换函数,用于对序列化时每个属性值进行转换,第三个参数是一个可选的缩进选项,用于定义输出字符串的缩进格式。

var jsonObj = {name: 'Tom', age: 18, isMale: true};
var jsonStr = JSON.stringify(jsonObj, function(key, value) {
  if (key === 'age') {
    return String(value);
  }
  if (key === 'isMale') {
    return value ? '男' : '女';
  }
  return value;
}, 2);
console.log(jsonStr); // 输出
/*
{
  "name": "Tom",
  "age": "18",
  "isMale": "男"
}
*/

在代码中,我们首先定义了一个JavaScript对象jsonObj,然后使用JSON.stringify()方法将其序列化为一个JSON字符串jsonStr。同时我们传递了一个转换函数,用于将数字类型的age属性值转换为字符串类型,将布尔类型的isMale属性值转换为自定义的“男”或“女”字符串。最后我们传递了一个缩进选项,用于定义输出字符串的缩进格式。最后输出jsonStr的值,结果为:

{
  "name": "Tom",
  "age": "18",
  "isMale": "男"
}

总结

本文介绍了JavaScript中的JSON解析和序列化,包括JSON.parse()方法和JSON.stringify()方法的用法以及参数说明。希望本文能对读者有所帮助。

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论