json.stringify()与json.parse()的区别以及用处

JSON在现代Web应用程序开发过程中扮演着非常重要的角色。它是一种数据格式,用来交换数据,而且被广泛使用。JS开发者通常需要将JS对象转换为JSON格式,然后将其发送到服务器或者持久性存储,JSON也会从服务器返回,然后被转换为JS对象。这个过程需要使用JSON.stringify()和JSON.parse()这两个方法来进行。

JSON.stringify()

JSON.stringify()方法将JavaScript对象转换为JSON字符串形式。该方法有三个参数:

  1. obj(必选参数):将要进行转换的 JavaScript 对象或其它值(数组、字符串、数字、布尔值等)。
  2. replacer(可选参数):JSON 字符串中需要被替换的值,即函数,任意类型数据(例如数组、对象和字符串)组成的数组或外部函数。如果省略,则返回一个JSON字符串对象,所有属性均为基本类型。
  3. space(可选参数):在 JSON 字符串中添加缩进、空格和换行符,使其更易于阅读。

下面是典型的JSON.stringify()用法以及它的效果:

const user = {
  name: 'John',
  age: 30,
  email: 'john@example.com'
}

const jsonString = JSON.stringify(user) 
console.log(jsonString)

输出结果:

{"name":"John","age":30,"email":"john@example.com"}

JSON.parse()

JSON.parse()方法将JSON字符串转换为JavaScript对象,并具有两个参数:

  1. JSON 字符串。
  2. (可选)过滤器,指定如何将纯JS对象转换为键值对形式。

下面是JSON.parse()典型的用法以及效果:

const userJson = '{"name":"John","age":30,"email":"john@example.com"}'

const userObj = JSON.parse(userJson) 
console.log(userObj)

输出结果:

{name: "John", age: 30, email: "john@example.com"}

区别

两者之间最明显的区别是JSON.stringify()是将JavaScript对象转换为JSON字符串,而JSON.parse()是将JSON字符串转换为JavaScript对象。通常情况下,必须使用JSON.stringify()在网络上发送JSON数据。在服务器端,我们要接受JSON数据并将其转换为JavaScript对象,所以我们使用JSON.parse()方法。

JSON.stringify()侧重于将JS对象转化为JSON字符串,包括可以选择转化哪些属性,也可以有缩放效果,而JSON.parse()则是将JSON字符串反序列化回JS对象,不做任何操作。

以下是使用两者技巧的一些示例

// 用于发送到服务器的原始数据
const data = {
  firstName: 'John',
  lastName: 'Doe',
  email: 'johndoe@example.com'
}

// 将JS对象转换为JSON字符串,使其可以被服务器接受​​。
const jsonData = JSON.stringify(data) 

// 发送JSON数据到服务器,并等待响应...
const response = await fetch('/api/user', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: jsonData
})

// 从响应中获取JSON字符串并解析为JS对象
const responseData = await response.json()

// 打印响应数据
console.log(responseData)
// 从响应中获取JSON字符串并解析为JS对象
const responseData = await response.json()

// JS对象被传回了,现在对数据进行处理...
const fullName = `${responseData.firstName} ${responseData.lastName}`
console.log(`Welcome, ${fullName}!`)

总的来说,JSON.stringify()用于将JS对象转换为JSON字符串,可以将数据发送给服务器或用于持久性存储。JSON.parse()则将JSON字符串转换为JS对象以进行进一步处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:json.stringify()与json.parse()的区别以及用处 - Python技术站

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

相关文章

  • C语言矩阵连乘 (动态规划)详解

    C语言矩阵连乘 (动态规划)详解 算法原理 矩阵乘法不满足交换律和结合律,因此计算矩阵连乘的顺序会影响计算时间。即使只有6个矩阵相乘,也有可能有超过百万种计算次序。因此需要通过算法来优化时间复杂度。动态规划是一种可用于求解最优化问题的算法,它将原问题分解为子问题求解,并将每个子问题的最优解存储在表格中,以便在较大的子问题中简化计算。 设矩阵 $A_{1 \t…

    C 2023年5月24日
    00
  • C语言 字符串指针详解及示例代码

    C语言 字符串指针详解及示例代码 什么是字符串指针? 在C语言中,字符串指针通常用来存储字符串的地址,字符串指针变量以及字符串变量有所不同:字符串变量是进行字符串内容及长度操作的,而字符串指针变量不同,它仅存储字符串的地址,这意味着字符串指针变量可以指向不同的字符串。 字符串指针变量的声明方式: char *stringPointer; 字符串指针的赋值 字…

    C 2023年5月24日
    00
  • C语言实现通讯录系统程序

    C语言实现通讯录系统程序攻略 通讯录系统是一个经典的应用程序,其实现也是编程入门的一大重点。本文将分享使用C语言实现通讯录系统程序的完整攻略,帮助你从零开始完成一个完整的通讯录系统。 步骤1:需求分析 在编写任何程序之前,需要进行需求分析,从而明确程序需要实现的具体功能。在此我们定义所需的功能如下: 添加联系人:用户可以添加一个新的联系人,并记录该联系人的姓…

    C 2023年5月23日
    00
  • C语言字符串替换:字符,字符串,字符数组详解

    C语言字符串替换:字符、字符串、字符数组详解 在C语言中,字符串替换是一个很基础的操作,常用的字符串替换包括用指定字符替换一个字符串中的某个字符,用指定字符串替换一个字符串中的某个子串,以及用另一个字符串替换一个字符数组中的某个子数组等。本文将详细讲解这三种情况的操作方法。 用指定字符替换一个字符串中的某个字符 首先让我们看一个简单的例子。下面的代码将见一个…

    C 2023年5月23日
    00
  • PostgreSQL 实现将多行合并转为列

    下面是详细讲解”PostgreSQL 实现将多行合并转为列”的完整攻略。 背景 假设当前有如下一张表格table1,其中id列为主键,col_name列为需要转为列的字段名称,col_value列为需要转为列字段对应的值。 id col_name col_value 1 name John 1 age 30 1 gender Male 2 name Emil…

    C 2023年5月22日
    00
  • C语言实现Floyd算法

    C语言实现Floyd算法 什么是Floyd算法 Floyd算法是一种用于寻找给定的加权图中多源点之间最短路径的算法,也称为Floyd-Warshall算法。 其时间复杂度为O(N^3),适用于需要求解所有顶点对间最短路径的场景。 算法思路 Floyd算法的思路是利用动态规划的思想,通过逐步考虑添加中间顶点的方式来逐步求得顶点对间的最短路径。 也就是说,我们首…

    C 2023年5月22日
    00
  • C语言中回调函数的含义与使用场景详解

    C语言中回调函数的含义与使用场景详解 什么是回调函数? C语言中,回调函数是指一个传入另一个函数作为参数的函数。这个传入的函数在另一个函数内部被调用。换句话说,回调函数是一种通过函数指针的技术来实现的函数间的回调。 具体来说,当一个函数调用另一个函数并向其中传递一个函数指针作为参数时,被传递的函数就被称为回调函数。 回调函数的使用场景 1. 事件回调 事件回…

    C 2023年5月24日
    00
  • C语言中如何进行GUI编程?

    要在C语言中进行GUI编程,需要使用专门的库或框架。以下是两种常用的GUI编程方式: 1. 使用GTK+库进行GUI编程 GTK+是一个跨平台的开源GUI库,它基于C语言编写。使用GTK+编写GUI程序的基本步骤如下: 步骤一:安装GTK+库 在Ubuntu系统下,可以输入以下命令安装GTK+库: sudo apt-get install libgtk2.0…

    C 2023年4月27日
    00
合作推广
合作推广
分享本页
返回顶部