JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数

yizhihongxing

下面是关于 JavaScript 中 JSON.parse 函数和 JSON.stringify 函数的详细讲解。

JSON 简介

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于 JavaScript 的一个子集,可以被多种不同编程语言读取和写入。

在 JavaScript 中要想将 JSON 数据转换为对象,或者将对象转换为 JSON 数据,可以使用 JSON.parse() 和 JSON.stringify() 方法。

JSON.parse() 方法

JSON.parse() 方法用于将一个JSON字符串转换为JavaScript对象。

基本用法:

const jsonStr = '{"name":"Jack", "age": 18, "city":"New York"}'
const obj = JSON.parse(jsonStr)
console.log(obj.name) // 输出 "Jack"

如果 JSON 字符串不符合规范(如缺失双引号或者属性名未加引号等),则该方法会抛出 SyntaxError 错误。

在 JSON.parse() 方法中还有一个可选的 reviver 参数,可以用来修改解析出来的对象或者数组。

例如,下面的代码演示了 reviver 参数的用法:

const jsonStr = '{"name":"Jack", "age": 18, "city":"New York"}'
const obj = JSON.parse(jsonStr, (key, value) => {
  if (key === 'age') {
    return value + 1
  }
  return value
})
console.log(obj.age) // 输出 19

在这个例子中,reviver函数判断如果键值为 "age" ,则将值加1后返回,否则返回原始值。

JSON.stringify() 方法

JSON.stringify() 方法将 JavaScript 对象或数组转换为 JSON 字符串。

基本用法:

const obj = {name: 'Jack', age: 18, city: 'New York'}
const jsonStr = JSON.stringify(obj)
console.log(jsonStr) 
// 打印结果: {"name": "Jack","age":18,"city":"New York"}

在 JSON.stringify() 方法中还包括第二个和第三个可选参数,分别是 replacer 和 space。

replacer 参数可以是一个函数或者数组。如果参数是一个函数,该函数将有机会修改存储在 JSON 字符串中的每个值。如果参数是一个数组,只有包含在数组中的属性名才会被序列化到 JSON 字符串中。

例如:

const obj = { a: 1, b: 2, c: 3 }
const jsonStr = JSON.stringify(obj, ['a', 'c']) 
console.log(jsonStr)
// 打印结果:{"a":1, "c":3}

// 使用 replacer 函数过滤
const jsonStr2 = JSON.stringify(obj, (key, value) => {
  if (key === 'a') {
    return undefined
  }
  return value
})
console.log(jsonStr2)
// 打印结果:{"b":2,"c":3}

space 参数可选,用来控制缩进的空格数。例如:

const obj = {name: 'Jack', age: 18, city: 'New York'}
const jsonStr = JSON.stringify(obj, null, 2)
console.log(jsonStr)
// 打印结果:
// {
//   "name": "Jack",
//   "age": 18,
//   "city": "New York"
// }

以上是关于 JSON.parse() 和 JSON.stringify() 方法的详细讲解攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数 - Python技术站

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

相关文章

  • Vue3.x最小原型系统讲解

    下面我会详细讲解“Vue3.x最小原型系统讲解”的完整攻略。 前言 作为前端开发工程师,我们经常需要使用Vue.js来开发项目。Vue.js是一个轻量级、简洁、易于学习和上手的MVVM框架,它的最新版本Vue3.x相较于Vue2.x,做出了很多优化和改进,比如更快的渲染速度、更小的体积和更好的代码组织能力。但是Vue3.x也带来了一些新概念和新的API,这对…

    JavaScript 2023年6月11日
    00
  • 深入理解Javascript中的作用域链和闭包

    让我来为你详细讲解 “深入理解Javascript中的作用域链和闭包” 的完整攻略。 什么是作用域链 作用域是一种规定了代码中变量和函数可见性的规则。在 Javascript 中,每个函数都会建立一个自己的作用域。当查找变量或函数时,Javascript 引擎首先查找当前作用域,如果找不到,就会沿着作用域链逐级向上查找,直到找到为止。作用域链就是由当前作用域…

    JavaScript 2023年6月10日
    00
  • JavaScript事件处理的方式(三种)

    JavaScript事件处理的方式,一般可以分为三种,分别是通过HTML属性、DOM 0级事件处理和DOM 2级事件处理。下面将一一详细讲解。 1. HTML属性方式 使用HTML标签的事件属性来绑定事件,比如<button onclick=”alert(‘clicked’)”>Click me</button>。 HTML属性事件处…

    JavaScript 2023年5月17日
    00
  • JS中两个数组对象筛选方法

    下面是JS中两个数组对象筛选方法的完整攻略。 一、筛选方法介绍 在JS中,我们经常需要对数组对象进行筛选。常见的筛选方法有filter和find。 1. filter filter方法可以对数组对象进行筛选,并返回一个新的数组,新数组中包含符合条件的元素。 const arr = [1, 2, 3, 4, 5]; const newArr = arr.fil…

    JavaScript 2023年5月27日
    00
  • JS实现中英文混合文字溢出友好截取功能

    以下是JS实现中英文混合文字溢出友好截取功能的完整攻略。 什么是中英文混合文字溢出? 中英文混合文字溢出通常是指,在一个容器中,两种不同字符(例如汉字和英文字符)混合排列,当容器宽度不够时,字符溢出容器的情况。由于汉字和英文字母的宽度不同,所以溢出部分难以准确的识别和截断,需要特殊处理。 如何实现中英文混合文字溢出友好截取? 第一步:计算字符长度和容器宽度 …

    JavaScript 2023年5月28日
    00
  • Element Alert警告的具体使用方法

    Element UI是一个基于Vue.js的桌面前端框架,提供了很多常用的UI组件。其中Element Alert警告组件用于提示用户操作的成功、失败和警告等结果。本文将详细讲解Element Alert警告组件的具体使用方法。 引入Alert组件 在使用Alert组件前,需要先引入Element UI: <link rel="stylesh…

    JavaScript 2023年6月11日
    00
  • vue-cli4.5.x快速搭建项目

    下面我会详细讲解一下如何使用vue-cli4.5.x快速搭建项目的完整攻略。步骤如下: 安装vue-cli 首先需要全局安装vue-cli,如果已经安装过了可以跳过这一步骤。使用以下命令在终端中进行安装: npm install -g @vue/cli 创建新项目 使用vue-cli可以快速创建一个新项目,只需要在终端中进入想要创建项目的文件夹,然后使用以下…

    JavaScript 2023年6月11日
    00
  • js中怎么判断两个字符串相等的实例

    判断两个字符串是否相等是编程中经常涉及到的问题,JavaScript中也提供了多种方法来实现字符串的比较。下面是两个示例来说明如何使用JavaScript判断两个字符串相等。 示例一:使用===比较运算符 使用===比较运算符可以判断两个字符串是否完全相等,包括字符串的值和类型。如果两个字符串完全相等,则返回true,否则返回false。 const str…

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