JavaScript(五):JSON

devtools/2025/1/3 4:30:59/

目录

JSON是什么

JSON在JavaScript中的应用

将JavaScript对象转换为JSON字符串

将JSON字符串解析为JavaScript对象

JSON 与 JavaScript 对象的区别


JSON是什么

JSON是由键值对组成的数据集合,键key是一个字符串,值value可以是以下几种类型之一:

  • 字符串(String)
  • 数字(Number)
  • 对象(Object)
  • 数组(Array)
  • 布尔值(Boolean)
  • null(空值)

JSON的基本语法结构是:

  • 数据以 {} 包围,表示一个对象
  • 数据以 [] 包围,表示一个数组
  • 键(key)和字符串的值(value)之间通过冒号 : 分隔
  • 键值对之间使用逗号 , 分隔

JSON在JavaScript中的应用

JavaScript中提供了JSON对象,内置了方法开处理JSON数据,包括将对象转换为JSON字符串和将JSON字符串解析为JavaScript对象

将JavaScript对象转换为JSON字符串

使用 JSON.stringify() 方法将 JavaScript 对象转换为 JSON 字符串

let person = {name: "Alice",age: 25,isStudent: false
};let jsonString = JSON.stringify(person);
console.log(jsonString);
// 输出: {"name":"Alice","age":25,"isStudent":false}

JSON.stringify() 方法将 person 对象转换为 JSON 字符串,可以将它发送到服务器,或将其存储在本地存储(localStorage)中

将JSON字符串解析为JavaScript对象

使用 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象

let jsonString = '{"name":"Alice","age":25,"isStudent":false}';let person = JSON.parse(jsonString);
console.log(person.name);  // 输出: Alice
console.log(person.age);   // 输出: 25

JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象,我们可以访问和操作其中的键值对

JSON 与 JavaScript 对象的区别

1. JSON中的键必须是字符串

在 JavaScript 对象中,键可以是字符串、数字或符号,但在 JSON 中,键必须是字符串,且必须用双引号 " 包围

// JavaScript 对象
let obj = { name: "Alice", 1: "one" };// JSON
let jsonString = '{"name": "Alice", "1": "one"}';

2. JSON不支持函数

3. JSON中没有undefined值

在 JSON 中,undefined 值是不允许的。如果对象中包含 undefined,它将被忽略,或者会抛出错误

let obj = { name: "Alice", age: undefined };
// 转换为 JSON 字符串时,`age` 将被忽略
let jsonString = JSON.stringify(obj);
console.log(jsonString);  // 输出: {"name":"Alice"}

4. JSON不支持注释


http://www.ppmy.cn/devtools/146876.html

相关文章

前端单位 px、vw、vh 等的区别与使用场景

前端单位 px、vw、vh 等的区别与使用场景 在前端开发中,CSS中的长度单位至关重要,不同单位适用于不同的布局场景。以下是对常见单位的详细解析和使用建议。 1. px(像素) 概念:px是绝对单位,表示屏幕上的物…

PyTorch快速入门教程【小土堆】之优化器

视频地址优化器(一)_哔哩哔哩_bilibili import torch import torchvision from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential from torch.utils.data import DataLoaderdataset torchvision.datasets.CIFAR1…

线性代数概念整理笔记

一、基本概念 线性代数:是代数学的一个分支,主要处理线性关系问题。线性关系指的是数学对象(比如方程中出现的未知数)之间的关系是以一次形式来表达的。线性方程:含有n个未知量的一次方程。线性方程组:由多…

Spring Boot对访问密钥加解密——HMAC-SHA256

HMAC-SHA256 简介 HMAC-SHA256 是一种基于 哈希函数 的消息认证码(Message Authentication Code, MAC),它结合了哈希算法(如 SHA-256)和一个密钥,用于验证消息的完整性和真实性。 HMAC 是 “Hash-based M…

!倒序数 !

时间限制:C/C 1000MS,其他语言 2000MS 内存限制:C/C 256MB,其他语言 512MB 难度:中等 分数:100 OI排行榜得分:12(0.1*分数2*难度) 描述 输入一个非负整数,输出这个数的倒序数。例如…

软件测试面试八股文,查漏补缺(附文档)

大家好,最近有不少小伙伴在后台留言,准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想的…

【C#】int与byte[]数组互转

1. int转byte[] 1.1 C#代码 //C#代码 int intNum 728; byte[] byteNum BitConverter.GetBytes(intNum);//byteNum[0]216 //byteNum[1]2 //byteNum[2]0 //byteNum[3]01.2 等效C语言代码 //C语言代码 int intNum 728; uint8_t byteNum[4] {0}; memcpy(byteNum, &in…

【深度学习】RNN循环神经网络的原理

sentiment analysis,根据评价来判断为好评还是差评。例如I hate this boring movie,每个单词都用一个张量[100]进行表示,整句话就可以用张量[5, 100]进行表示。每个单词经过线性层操作之后(w和b的shape为[100, 2])&…