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数据(二) - 序列化探讨的完整攻略,其中包含两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js解析与序列化json数据(二)序列化探讨 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript中Function详解

    JavaScript中Function详解 JavaScript中的函数是一种可重用代码块,它们可以带有参数并且可以返回值。在JavaScript中,函数是第一类对象,意味着它们可以像其他数据类型一样被赋值、传递和操作。 函数声明和调用 JavaScript中可以用 function 关键字定义一个函数。函数定义包括函数名、参数和函数体。下面是一个函数 ad…

    JavaScript 2023年5月27日
    00
  • 介绍一下js垃圾回收机制

    JavaScript中的垃圾回收机制负责自动管理内存,回收不再使用的对象所占用的内存空间。在JavaScript中,开发者不需要显式地分配和释放内存,垃圾回收器会自动完成这些操作。以下是关于JavaScript垃圾回收机制的一些关键概念: 内存生命周期:JavaScript内存生命周期包括分配、使用和释放三个阶段。首先,内存会被分配给变量或对象;然后,程序会…

    JavaScript 2023年4月17日
    00
  • apply和call方法定义及apply和call方法的区别

    apply和call方法是JavaScript中用于改变函数执行上下文(this指向)的两种常用方法。它们的定义及区别如下: apply方法定义及使用 apply方法是函数对象的原型方法,它可以改变函数的this指向,并且接受两个参数,第一个参数是函数上下文,第二个参数是数组,这个数组中的每个元素都是传递给函数的参数。 apply方法的使用方式如下: fun…

    JavaScript 2023年6月11日
    00
  • 详解AngularJS Filter(过滤器)用法

    详解AngularJS Filter(过滤器)用法 什么是AngularJS Filter? AngularJS Filter(过滤器) 是AngularJS中的一种自定义组件,它可以对要展示在AngularJS应用程序模板上的数据进行数量、格式和类型等方面的过滤或转换,相当于是数据的预处理器。使用过滤器,可以让我们更加方便,快捷地展示数据。 例如,用户搜索…

    JavaScript 2023年6月10日
    00
  • javascript实现unicode和字符的互相转换

    javascript实现unicode和字符的互相转换是一个比较常见的需求,下面是一些常见实现方式: 使用charCodeAt()方法将字符转换成unicode JavaScript中有一个内置方法叫做charCodeAt(),可以返回指定位置的字符的Unicode值。使用该方法,可以将字符转换成对应的Unicode值。 下面是一个将字符串中的每个字符转换成…

    JavaScript 2023年5月19日
    00
  • 老生常谈JavaScript数组的用法

    老生常谈JavaScript数组的用法 什么是JavaScript数组 JavaScript中的数组是一种数据结构,用来存储一组数据。数组中的每个数据项都有一个索引值,从0开始计数,可以通过索引值来访问数组中的元素。 声明和初始化一个数组 声明一个数组需要使用[]符号,数组的元素之间使用,进行分隔,可以同时存储任何类型的数据。 示例代码: const arr…

    JavaScript 2023年5月18日
    00
  • webpack实现热更新(实施同步刷新)

    webpack实现热更新是在开发过程中非常常见的需求,它可以在代码修改后自动刷新页面,使开发人员能够更方便地查看效果。下面是实现webpack热更新的完整攻略: 1. 配置webpack-dev-server webpack-dev-server是webpack中的一个开发服务器,它可以实现热更新,而我们只需要在启动webpack-dev-server时添加…

    JavaScript 2023年6月1日
    00
  • HTML+JavaScript实现扫雷小游戏

    项目准备要实现HTML+JavaScript的扫雷小游戏,需要先准备好游戏界面,以及相关的代码和算法。首先,需要绘制游戏地图,并放置相应的地雷。接着,需要通过JavaScript编写游戏逻辑和算法,并在对应的HTML文件中引用相应的JS脚本和CSS样式表,以配置游戏的界面和交互组件。需要注意的是,在引用JS脚本的过程中,应该采用外链方式,而不是直接嵌入到HT…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部