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 解决表单仍然提交即使监听处理函数返回false

    当我们使用JavaScript对表单进行监听处理时,通常会添加一个事件处理函数,并在函数中使用return false语句来阻止表单的提交。但是,在某些情况下,仍然有可能发生表单提交的情况,这时我们需要采取其他措施来确保表单不会提交。下面是一些解决方法: 1. 使用preventDefault方法 preventDefault()方法可以阻止元素发生默认行为…

    JavaScript 2023年6月10日
    00
  • javascript的数组和常用函数详解

    下面我将为大家详细讲解“JavaScript的数组和常用函数”: JavaScript数组基础知识 JavaScript数组是一种可以存储多个值的变量类型,可以存储数字、字符串、布尔值等等各种类型的值。数组是由一个方括号围成的有序列表,在方括号中每个元素之间用逗号分隔。 例如,下面是一个由数字组成的数组: let myArray = [1, 2, 3, 4,…

    JavaScript 2023年5月27日
    00
  • JS实现表单验证案例

    JS实现表单验证是前端开发中经常用到的技术,可有效防止用户提交无效或不完整的数据。下面是一些实现表单验证的技巧。 第一步:获取表单元素 在JS中,使用DOM API获取表单元素非常简单。首先得到表单元素本身,然后可以通过表单的表单元素来访问表单元素。例如: const form = document.querySelector(‘form’); const …

    JavaScript 2023年6月10日
    00
  • JS跨域总结

    JS跨域总结攻略 什么是跨域 在浏览器中,一个Web页面从一个服务器的域名、端口或协议请求资源时,如果该请求目标与该Web页面的域名、端口或协议不一致,就会发生跨域。 JS跨域的原因 跨域问题的出现是因为浏览器的同源策略。同源策略是浏览器对JavaScript代码的安全限制,同源是指协议,域名,端口号均相同。浏览器阻止页面中的JavaScript程序去访问不…

    JavaScript 2023年6月11日
    00
  • JavaScript中三种异步上传文件方式

    JavaScript中上传文件时,为了避免页面的阻塞,一般都使用了异步上传的方式。简单来说,异步上传文件就是将文件通过 AJAX 方式发送给服务器,实现文件的上传。下文将详细讲解JavaScript中三种异步上传文件方式的攻略。 FormData 使用FormData上传文件,可以将form表单中的所有元素的值(input,textarea,select)通…

    JavaScript 2023年5月27日
    00
  • JS实现可针对算术表达式求值的计算器功能示例

    JS实现可针对算术表达式求值的计算器功能示例 介绍 本文将介绍如何使用JS实现一个可针对算术表达式求值的计算器功能示例。 实现步骤 用户界面实现 首先,我们需要实现一个用户界面,来接收用户输入的算术表达式。在此示例中,我们使用HTML和CSS来实现一个基本的用户界面,示例代码如下: <!DOCTYPE html> <html> &lt…

    JavaScript 2023年5月28日
    00
  • 用json方式实现在 js 中建立一个map

    在 Javascript 中建立一个 Map,在较早版本的 Javascript 中是无法直接实现的,但我们可以使用 JSON 格式实现一个类似 Map 的数据结构。 具体实现过程: 首先定义一个 JSON 对象来表示 Map,将每个键值对当作 JSON 对象的一个属性,键作为属性名,值作为属性值。例如,要建立一个键为 “key1″,值为 1 的 Map: …

    JavaScript 2023年5月27日
    00
  • 为JS扩展Array.prototype.indexOf引发的问题及解决办法

    如果扩展 Array.prototype.indexOf 方法,可能会在不经意间影响到其他代码或第三方库的运行,导致一些难以发现或修复的奇怪问题。在扩展 Array.prototype.indexOf 方法时,应该考虑仔细分析其潜在影响,并采取一些防范措施以避免可能出现的冲突和问题。 为JS扩展Array.prototype.indexOf引发的问题 当我们…

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