关键词

js解析与序列化json数据(二)序列化探讨

JS解析与序列化JSON数据(二) - 序列化探讨

什么是序列化?

序列化是指将对象(Object)、数组(Array)等复杂的数据类型转换成字符串的过程,方便在不同平台上的传输和存储。在JavaScript中,序列化的主要应用是在数据传输和存储时,将复杂的数据类型转换为字符串,再通过反序列化,将字符串转回原来的数据类型。

序列化方法

JavaScript中常用的序列化方法有两种:JSON.stringify()和toString()

JSON.stringify()

JSON.stringify(obj, [replacer], [space])方法可以将一个JavaScript对象序列化成JSON字符串,其中,第一个参数是要序列化的对象,第二个参数可选,可以是一个函数,也可以是一个数组,用来过滤要序列化的属性,第三个参数也可选,用来控制JSON字符串的缩进和格式。

let foo = {name:'Jack', age:18, gender:'male'};
let json = JSON.stringify(foo);
console.log(json);  // {"name":"Jack","age":18,"gender":"male"}

toString()

toString()方法将对象转换为字符串,但它不能实现JSON数据的生成,仅限于将对象转换为字符串。

let foo = {name:'Jack', age:18, gender:'male'};
let str = foo.toString();
console.log(str);  // [object Object]

序列化示例

下面是两个序列化的示例:

示例一

let movie = {
  title: 'The Shawshank Redemption',
  actor: {
    name: 'Tim Robbins',
    age: 62,
    gender: 'male'
  },
  director: {
    name: 'Frank Darabont',
    age: 60,
    gender: 'male'
  }
}

let json_movie = JSON.stringify(movie);
console.log(json_movie);

执行结果:

{
  "title":"The Shawshank Redemption",
  "actor":{
    "name":"Tim Robbins",
    "age":62,
    "gender":"male"
  },
  "director":{
    "name":"Frank Darabont",
    "age":60,
    "gender":"male"
  }
}

示例二

let person = {
  name:'Tom',
  age:28,
  gender:'male',
  profession:'Engineer',
  interests:['reading','music','travel'],
  setAddress:function(city, area){
    this.address = {
      city:city,
      area:area
    }
  }
}

person.setAddress('Shanghai','Pudong');

let json_person = JSON.stringify(person, ['name', 'age', 'interests', 'address']);
console.log(json_person);

执行结果:

{
  "name":"Tom",
  "age":28,
  "interests":["reading","music","travel"],
  "address":{
    "city":"Shanghai",
    "area":"Pudong"
  }
}

以上是JS解析与序列化JSON数据(二) - 序列化探讨的完整攻略,其中包含两个示例说明。

本文链接:http://task.lmcjl.com/news/9132.html

展开阅读全文