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++11封装thread库的方法示例

    C++11封装thread库的方法示例 本文讲解在C++11中如何使用thread库进行线程管理,通过封装实现线程安全的应用程序。 为什么要使用线程 在计算机科学中,线程表示程序中执行的一条路径。一个进程通常包含一个或多个线程,多个线程可以并行执行,提高程序的处理效率;同时,也方便了对于程序中复杂、耗时的操作的调度和管理。 介绍封装thread库的方法 C+…

    C 2023年5月22日
    00
  • C/C++高精度算法的实现

    C/C++高精度算法的实现攻略 什么是高精度算法? 在计算机上进行数学运算通常都是使用二进制来表示数字,而二进制可以在内存中用 0 和 1 表示。在使用标准类型(如 int, long)时,它们可以很方便地执行大量的数学运算。但是,对于较大的数字或需要较高精度的计算,这些类型可能无法满足需求,因为它们只能容纳有限数量的比特,从而有限表示。基于这些原因诞生了高…

    C 2023年5月23日
    00
  • C语言make和Makefile介绍及使用

    C语言make和Makefile介绍及使用 什么是make make是一种自动化编译工具,可以根据源代码和规则文件(Makefile),自动化地编译出可执行文件。make的主要优点是能够自动化编译过程,只需要更新发生改变的文件,就可以快速地编译出目标文件或可执行文件。这对于大型项目和复杂项目来说,非常有用。 Makefile介绍 在使用make时,需要编写一…

    C 2023年5月23日
    00
  • 荣耀畅玩7c怎么开启热点?荣耀畅玩7c开启热点教程

    下面给您详细讲解荣耀畅玩7c如何开启热点的完整攻略: 一、前置条件 在进行热点开启之前,请确保您的荣耀畅玩7c已经连接到移动网络,并且您已经知道热点开启会消耗您的移动网络流量。 二、开启热点 从荣耀畅玩7c的系统设置进入到 “更多连接方式” 页面。 在更多连接方式页面中,点击 “个人热点”。如果您没有在荣耀畅玩7c上设置过热点,第一次点击个人热点会提示您开启…

    C 2023年5月23日
    00
  • iOS多线程应用开发中使用NSOperation类的基本方法

    iOS多线程应用开发中,使用NSOperation类可以有效地管理和控制多线程任务,提高应用程序的性能和响应速度。以下是使用NSOperation类的基本方法的完整攻略: 1. 概述 NSOperation是一个抽象类,定义了一个任务的基本接口,它是实现多线程编程的重要工具之一,可以继承NSOperation类来自定义任务,也可以使用NSBlockOpera…

    C 2023年5月22日
    00
  • C语言实现简单三子棋程序

    C语言实现简单三子棋程序的完整攻略包括以下步骤: 定义游戏规则和棋盘 首先需要定义游戏规则,规定每个玩家的棋子形状和放置的位置等信息。同时需要定义一个3×3的棋盘数组,用于记录每个位置上的棋子情况。 #include <stdio.h> #define ROW 3 #define COL 3 // 定义棋盘 char board[ROW][COL…

    C 2023年5月23日
    00
  • APS-C产品线重新布局 尼康单反相机D7500详细评测

    APS-C 产品线重新布局 缘起 随着手机的普及和拍照技术的提升,传统的相机市场面临着巨大的压力,而 APS-C 市场则成为了厂商们的一块避风港。如今,长期以来被几乎所有厂商忽略的 APS-C 市场也逐渐成为了消费市场各大巨头关注的重点。 尼康单反相机 D7500 详细评测 产品介绍 尼康 D7500 是一款中高端 APS-C 市场的单反相机,主要针对喜欢户…

    C 2023年5月22日
    00
  • C++泛型编程函(数模板+类模板)

    对于C++泛型编程,我们可以使用模板来实现。在C++中,我们可以使用函数模板和类模板来实现泛型编程。 C++函数模板 C++函数模板是一种特殊的函数,它可以像参数一样的方式接受一种数据类型,并使代码对于任何数据类型都可用。其语法格式如下: template <typename T> return_type function_name (argum…

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