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++编程中断言static_assert的使用

    详解C++编程中断言static_assert的使用 在C++中,当我们需要在编译期进行类型检查或常量计算时,可以使用static_assert。具体来说,static_assert是一个语言特性,用于在编译期进行断言判断,如果判断条件为false,则程序会在编译期抛出一个编译错误,阻止程序的继续编译。 用法 static_assert可以用于两种类型的判断…

    C 2023年5月23日
    00
  • Linux下的软件开发

    Linux下的软件开发攻略 1. 安装必要的工具 在Linux系统中进行软件开发需要安装一些必要的工具,例如编译器、版本控制工具、调试器等。下面是一些常用的工具及其安装命令: C/C++ 编译器 sudo apt-get install build-essential 版本控制工具Git sudo apt-get install git 调试器GDB sud…

    C 2023年5月30日
    00
  • Swift 列举内存管理与异常处理具体代码

    Swift 列举内存管理与异常处理具体代码攻略 Swift 内存管理和异常处理是其最重要的特性之一。在 Swift 中,内存管理是通过自动引用计数(ARC)来完成的。在同时保持强类型和灵活性的同时,Swift 在 ARC 中引入了一些新概念,如弱引用和非拥有引用。Swift 还提供了一些异常处理机制来处理程序运行时可能发生的错误。下面为您详细介绍 Swift…

    C 2023年5月23日
    00
  • C语言中的sscanf()函数使用详解

    C语言中的sscanf()函数使用详解 简介 sscanf() 是 C 语言中用于格式化输入的函数,它可以解析字符串,将指定格式的数据转换成相应的类型,并存储到对应的变量中。 sscanf() 函数工作方式类似于 scanf() 函数,唯一的区别是前者从指定字符串中读取参数,而后者则是从标准输入中读取参数。 函数原型 函数原型如下: int sscanf(c…

    C 2023年5月22日
    00
  • C++中的可移植性和跨平台开发教程详解

    C++中的可移植性和跨平台开发教程详解 C++ 是一种高效的编程语言,具有广泛的应用,因为它提供了机器语言的效率和高级语言的可读性。然而,在编写 C++ 代码时需要考虑可移植性和跨平台开发问题。本文将详细讲解如何编写可移植的代码并在多个平台上运行。 可移植性 可移植性是指代码可以在多种不同的平台上编译和运行而无需进行修改。这是一个非常重要的问题,因为开发人员…

    C 2023年5月23日
    00
  • C语言如何改变字体颜色

    下面是C语言如何改变字体颜色的完整攻略。在Windows命令行界面中,我们可以用如下的C语言代码来修改字体颜色: #include <Windows.h> int main() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole…

    C 2023年5月23日
    00
  • android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值

    下面是详细的讲解: Unicode码值 Unicode是一个国际编码标准,用于为各种字符集中的每个字符分配唯一的数字标识符。Unicode用十六进制数表示每个字符,其中每个数字都有一个特定的名称和一个唯一的码位。而Android中的特殊字符的Unicode码值也是采用Unicode编码标准,可以在Unicode标准网站上查询。 特殊字符的Unicode码值示…

    C 2023年5月22日
    00
  • C++超集C++/CLI模块的基本语法

    C++/CLI是一个能够在.NET Framework下,基于C++语言创建托管代码的技术。C++/CLI模块是指一个.dll文件,它包含用C++/CLI语法写的代码,能够被.NET程序引用并利用其中的类、方法等等。 C++/CLI模块的基本语法如下: 命名空间(namespace) C++/CLI和C++一样可以使用命名空间(namespace)来整理代码…

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