【Java 进阶篇】JavaScript JSON 语法入门:轻松理解数据的序列化和反序列化

news2024/11/18 15:26:59

在这里插入图片描述

嗨,亲爱的小白们!欢迎来到这篇关于 JavaScript 中 JSON(JavaScript Object Notation)语法的入门指南。JSON 是一种轻量级的数据交换格式,广泛应用于前端开发中。通过这篇博客,我将带你深入了解 JSON 的语法,以及如何在 JavaScript 中使用它来实现数据的序列化和反序列化。让我们一起踏上这段有趣的学习之旅吧!

JSON 是什么?

JSON,即 JavaScript Object Notation,是一种用于在不同语言之间交换数据的轻量级数据格式。它以易于阅读和编写的文本形式表示数据对象,同时也易于机器解析和生成。在 JavaScript 中,JSON 通常用于在浏览器和服务器之间传输数据。

JSON 数据是一个键值对的集合,其中键(属性名)和值之间使用冒号分隔,不同的键值对使用逗号分隔。整个 JSON 数据包含在花括号 {} 中,表示一个对象。数组在 JSON 中用中括号 [] 表示,其中的元素可以是任何有效的 JSON 数据。

下面是一个简单的 JSON 示例:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York",
  "skills": ["JavaScript", "HTML", "CSS"]
}

在这个例子中,我们有一个包含个人信息的 JSON 对象,其中包括姓名、年龄、城市和技能数组。

JSON 的语法规则

对象(Object)

JSON 对象由一组键值对组成,键和值之间使用冒号 : 分隔,不同的键值对使用逗号 , 分隔。整个对象使用花括号 {} 包裹。

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

数组(Array)

JSON 数组由一组值组成,值之间使用逗号 , 分隔,整个数组使用中括号 [] 包裹。

["value1", "value2", "value3"]

字符串(String)

JSON 字符串是由双引号 " 包裹的文本。

"Hello, JSON!"

数字(Number)

JSON 数字表示整数或浮点数。

42
3.14

布尔值(Boolean)

JSON 布尔值表示真或假。

true
false

空值(Null)

JSON 空值表示为 null

null

在 JavaScript 中使用 JSON

现在我们已经了解了 JSON 的基本语法,让我们看看如何在 JavaScript 中使用 JSON 进行数据的序列化和反序列化。

数据序列化(JSON.stringify)

在 JavaScript 中,可以使用 JSON.stringify() 方法将对象转换为 JSON 格式的字符串。这是一个简单的例子:

const person = {
  name: "John Doe",
  age: 30,
  city: "New York",
  skills: ["JavaScript", "HTML", "CSS"]
};

const jsonString = JSON.stringify(person);

console.log(jsonString);

上面的代码将 person 对象转换为 JSON 字符串,并输出结果:

{"name":"John Doe","age":30,"city":"New York","skills":["JavaScript","HTML","CSS"]}

数据反序列化(JSON.parse)

相反地,可以使用 JSON.parse() 方法将 JSON 字符串转换回 JavaScript 对象。以下是一个例子:

const jsonString = '{"name":"John Doe","age":30,"city":"New York","skills":["JavaScript","HTML","CSS"]}';

const person = JSON.parse(jsonString);

console.log(person);

这段代码将 JSON 字符串转换为 JavaScript 对象,并输出结果:

{
  name: "John Doe",
  age: 30,
  city: "New York",
  skills: ["JavaScript", "HTML", "CSS"]
}

JSON 的应用场景

JSON 在前端开发中有着广泛的应用,常见的应用场景包括:

  • 与服务器通信: 在网络请求中,常用 JSON 格式传输数据。
  • 存储配置信息: 许多应用程序使用 JSON 格式来存储和读取配置信息。
  • 本地存储: 在客户端,可以使用 JSON 来存储和读取本地数据。

小结

通过这篇博客,你应该对 JSON 的基本语法以及在 JavaScript 中的应用有了更深入的了解。JSON 提供了一种简洁而强大的方式来表示和交换数据,使得前端开发更加灵活和高效。希望这篇文章能够帮助你更好地掌握 JSON,从而更自信地处理数据在前端的应用。继续加油学习,同学们!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1234899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode任务tasks.json中的问题匹配器problemMatcher的问题匹配模式ProblemPattern详解

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中,tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题(错误、警告等)。 problemMatcher有三种配置方式,具体可…

Hibernate 一级缓存,二级缓存,查询缓存

概念: 1.什么是缓存呢? 缓存:是计算机领域的概念,它介于应用程序和永久性数据存储源之间。 缓存:一般人的理解是在内存中的一块空间,可以将二级缓存配置到硬盘。用白话来说,就是一个存储数据的…

Spring Cloud Alibaba Sentinel 简单使用

Sentinel Sentinel 主要功能Sentinel 作用常见的流量控制算法计数器算法漏桶算法 令牌桶算法Sentinel 流量控制Sentinel 熔断Sentinel 基本使用添加依赖定义资源定义限流规则定义熔断规则如何判断熔断还是限流自定义 Sentinel 异常局部自定义异常全局自定义异常系统自定义异常…

战备器材管理系统-部队物资仓库管理系统

一、项目背景 传统的战备物资管理,一般依赖于一个非自动化的、以纸张文件为基础的系统来记录、追踪进出的货物,完全由人工实施仓库内部的管理,因此仓库管理的效率极其低下。对此,我们运用无线射频技术(RFID)的仓库智能管理系统&am…

RabbitMQ 基础操作

概念 从计算机术语层面来说,RabbitMQ 模型更像是一种交换机模型。 Queue 队列 Queue:队列,是RabbitMQ 的内部对象,用于存储消息。 RabbitMQ 中消息只能存储在队列中,这一点和Kafka相反。Kafka将消息存储在topic&am…

在无回显的情况下如何判断是否存在命令注入漏洞

在无回显的情况下如何判断是否存在命令注入漏洞 这种情况下可以使用OOB带外来实现&#xff0c;言而简之&#xff0c;就是利用命令执行漏洞去解析我们的dns如果dns日志有记录那就说明存在命令注入漏洞 首先先简单搭建一个无回显的命令注入 <?phpexec($_REQUEST[777]); ?&…

shell脚本判断语句

目录 一. 判断语句 1. 判断文件是否存在 test 2. 数值比较 3. 字符串比较 4. 逻辑运算 5. [ ] 与 [ [ ] ] 6. ( ) 与 { } 7. if 语句 二. 脚本应用 一. 判断语句 1. 判断文件是否存在 test 选项 -a 和 -e 都可以判断文件是否存在 只是 -a 选项在取反时有问题&#xf…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大特点分析

数字化时代银行网点厅堂营销存在以下5大特点&#xff1a; 1、产品多样化&#xff1a;在数字化时代&#xff0c;银行的产品和服务变得更加多样化。除了传统的存款、贷款、理财等金融服务外&#xff0c;还新增了各种创新产品&#xff0c;如网上银行、移动支付、投资咨询、保险、…

5 个适用于 Linux 的开源日志监控和管理工具

当Linux等操作系统运行时&#xff0c;会发生许多事件和在后台运行的进程&#xff0c;以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中&#xff0c;例如 init 或 systemd 进程或用户应用程序&#xff0c;例如 Apache、MySQL、FTP 等。 为了了解系统和不同应用程序…

离线安装Linux包的方法

sklearn库安装方法&#xff08;有详细步骤流程&#xff09; 离线安装Linux包的方法——以sklearn为例 https://pypi.org/project/scikit-learn

百度搜索万亿规模特征计算系统实践

作者 | Jay 导读 本文主要介绍百度搜索在全网万亿级规模内容做内容理解的工程实践&#xff0c;涉及机器学习工程化、资源调度、存储优化等多个Topic。 全文6648字&#xff0c;预计阅读时间17分钟。 01 业务背景 百度收录了互联网海量内容&#xff0c;要索引这些内容&#xff0…

基于单片机预费电表控制系统(proteus仿真+源程序)

一、系统方案 1、本设计采用这51单片机作为主控器。 2、采集电量值送到液晶1602显示。 3、按键设置预设值&#xff0c;实际使用电量超过设置&#xff0c;蜂鸣器报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void LCD_init(void) { …

#gStore-weekly | gBuilder功能详解之结构化数据抽取

上一个weekly中已经详细讲解了schema的设计&#xff0c;在schema设计好了之后&#xff0c;gBuilder支持将结构化和非结构化数据转化为RDF图数据。其中结构化数据支持数据的无损转化。 1. 技术介绍 gBuilder的结构化数据抽取采用D2RQ技术实现。 DR2Q是一个能够将关系数据库中…

Redis从入门到精通(二)- 入门篇

文章目录 0. 前言1. 入门篇[【入门篇】1.1 redis 基础数据类型详解和示例](https://icepip.blog.csdn.net/article/details/134438573)[【入门篇】1.2 Redis 客户端之 Jedis 详解和示例](https://icepip.blog.csdn.net/article/details/134440061)[【入门篇】1.3 redis客户端之…

KNN(k近邻法)算法理论和实战

KNN概念 k近邻法&#xff08;k-nearest neighbor&#xff0c;k-NN&#xff09;是一种基本分类与回归方法。 k近邻法的输入为实例的特征向量对应于特征空间的点&#xff1b;输出为实例的类别&#xff0c;可以取多类。 k近邻法假设给定一个训练数据集&#xff0c;其中的实例类…

基于非链式(数组)结点结构的二叉树的层序、先序、中序、后序输入创建以及层序、先序、中序、后序输出

这个系列来记录学习一下如何用数组完成二叉树的4种顺序的创建&#xff0c;以及其4种顺序的遍历。 我们知道&#xff0c;对于一棵二叉树而言它有4种遍历的顺序&#xff0c;那自然就导致其输入结点时&#xff0c;也分这四种顺序。 分别是—— 层序&#xff1a; …

Kotlin 核心语法,为什么选择Kotlin ?

Kotlin 是一个基于 JVM 的新的编程语言&#xff0c;由 JetBrains 开发。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的&#xff0c;Intellij作为它主要的开发IDE。对于 Android开发者&#…

Java实现围棋算法

围棋是一种源自中国的棋类游戏&#xff0c;也是世界上最古老、最复杂的棋类游戏之一。该游戏由黑白两方交替放置棋子在棋盘上进行&#xff0c;目的是将自己的棋子占据更多的空间&#xff0c;并将对手的棋子围死或吃掉&#xff0c;最终获得胜利。围棋不仅是一种游戏&#xff0c;…

以太网_寻址

【架构图】 【ipconfig/all】 MAC地址&#xff1a;作用于本地网络&#xff0c;数据包发送到本地交换机或路由器后经判断目的地址是本地网络地址会转发给当前MAC地址对应的网线端口。 IP地址&#xff1a;供路由器寻址&#xff0c;会跟子网掩码进行运算&#xff0c;属于同一网络…

两种Deformable Attention的区别

先分别写一下流程 Deformable DETR(2020)的Deformable Attention 解释&#xff1a; Deformable Attention如下图所示K3, M3K是指每个zq会和K个offset算attention&#xff0c;M是指M个head&#xff0c; z q z_q zq​有NHW个&#xff1a; 参考点&#xff1a;reference points&am…