JSON基础入门

简介:

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间进行数据交换。它基于JavaScript语言的子集,但已成为独立于语言的格式,因此可以通过多种编程语言进行解析和生成。

JSON的特点包括:

1. **易于阅读和编写**:JSON使用易于理解的文本格式,使其对人类用户和计算机程序员都易于阅读和编写。

2. **轻量级**:JSON是一种轻量级的数据交换格式,比起XML等其他格式,JSON的数据描述更加紧凑,传输效率更高。

3. **与语言无关**:JSON是一种与编程语言无关的格式,因此可以在各种不同的编程语言中解析和生成。

4. **支持复杂数据结构**:JSON支持各种数据类型,包括字符串、数字、布尔值、数组、对象等,可以表示复杂的数据结构。

5. **易于解析**:由于其简单的语法规则,JSON易于解析和生成,几乎所有的现代编程语言都有相关的解析器和生成器。

6. **与Web技术兼容**:JSON最初是作为JavaScript的一种子集而开发的,因此与Web技术(如JavaScript、Ajax)兼容性良好,常用于Web应用程序中。

JSON重点概念:

数据、对象、数组

JSON语法规则要点:

JSON(JavaScript Object Notation)语法规则要点如下:

1. **数据在名称/值对中**:
   - 数据以键值对的形式表示,名称和值之间使用冒号 `:` 分隔。
   - 每个名称/值对之间使用逗号 `,` 分隔。

2. **对象用花括号定义**:
   - 对象由一对花括号 {} 包围,表示一组无序的键值对集合。
   - 键值对之间使用逗号 `,` 分隔。

3. **数组用方括号定义**:
   - 数组由一对方括号 `[]` 包围,表示一组有序的值的集合。
   - 数组中的值可以是任意类型的数据,包括字符串、数字、对象、数组、布尔值或null。
   - 数组中的值之间使用逗号 `,` 分隔。

4. **值的数据类型**:
   - 值可以是字符串、数字、对象、数组、布尔值或null。
   - 字符串需要用双引号 `"` 括起来。
   - 数字可以是整数或浮点数,不需要引号。
   - 布尔值只能是 true 或 false
   - null表示空值。

5. **字符串规则**:
   - 字符串必须用双引号 `"` 包围。
   - 字符串中可以包含任意Unicode字符,但需要使用转义字符来表示特殊字符。
   - 转义字符包括 `\b`(退格符)、`\f`(换页符)、`\n`(换行符)、`\r`(回车符)、`\t`(制表符)、`\"`(双引号)、`\\`(反斜杠)。

6. **空白符**:
   - JSON允许在对象和数组中使用空白符(空格、制表符、换行符等),以增加可读性。

7. **注释**:
   - JSON不支持注释。

总的来说,JSON的语法简单清晰,易于理解和使用,适合用于数据交换和存储。

JSON数据:

JSON数据以“名”“值”对呈现。数据“名”“值”由冒号分隔。JSON数据的书写格式是:

“JSON数据名”:JSON数据值

JSON数据举例:

"Year":2024
"UPR":"www.kurumi_blog.com"

注:JSON数据名称需要放在双引号中。

JSON数据值:

JSON数据值可以是以下内容:

  • 数字(整数或浮点数)
  • 字符串
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

注意:一个JSON数据名称只能对应一个值。以下是一系列JSON数据的举例。

数字示例:

"phonenumber":10086

"name":"kurumi"

"bool_value":true

JSON对象:

        JSON对象在大括号{}中书写,对象可以包含单个或者多个JSON数据。对象(object) 是一个无序的数据集合(“‘名/值’对”集合)。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名/值’ 对”之间使用“,”(逗号)分隔。

单个数据的JSON对象:

{"name":"kurumi"}

多个数据的JSON对象:

{
"name":"kurumi",
"website":"www.kekedi.com"
}

多个数据的JSON对象,每个JSON数据又包含一个JSON对象:

{"info": {"name": "kurumi","website": "www.kekedi.com"},"date": {"year": 2024,"month": 4,"day": 15}
}

注:JSON对象中的数据使用逗号进行分隔。

对象中不能存放对象,以下示例是错误的:

{{"name": "kurumi","website": "www.kekedi.com"},{"year": 2024,"month": 4,"day": 15}
}

对象中也不能直接存放数组,以下示例是错误的:

{"info": {"name": "kurumi","website": "www.kekedi.com"},[{"temperature" : 25}]
}

JSON数组:

        数组(array) 是相同元素的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 如下所示:

["faker","zeus","oner","gumayusi","keria"]

或者

[1,1,4,5,1,4]

数组可包含一个或多个对象,单个对象数组示例:

[{"name" : "kurumi","website" : "www.kekedi.com"}
]

含多个对象数组示例:

[{"name" : "kurumi","website" : "www.kekedi.com"},{"year": 2024,"month": 4,"day": 15}
]

数组里面也可以有数组:

[[{"name" : "kurumi","website" : "www.kekedi.com"},{"year": 2024,"month": 4,"day": 15}],[{"temperature" : 25,}]		
]

请留意,在以上示例中。数组中的元素之间都是使用逗号进行分割的。

注意:数组不能直接存放JSON数据,以下示例是错误的:


["date": "2024-04-15","weekday": "MON"
]

JSON对象与数组混合存放:

{"results": [{"location": {"name": "Foshang","country": "CN"},"now": {"text": "Clear","code": "1","temperature": "3"},"last_update": "2024-04-15T20:10:00+08:00"}]
}

        通过以下示例我们可以看到,该JSON对象包含有一个数据,数据名为results该数据的值是一个数组此数组只含有一个对象。此对象包含有三个数据。这三个数据的名称分别是:location、now和last_update。其中location的值是含有两个数据的对象。now的值是含有三个数据的对象。last_update的值是字符串”2024-04-15T20:10:00+08:00″。

总结:

JSON文件乍一看很复杂,但只要注意以下几点就可以分析出JSON数据内容。

首先注意以下符号的含义:
:用于分隔数据的“名”和“值”
{} 标注对象内容
[]标注数组内容
,分隔数据、对象和数组

最关键的点:

1、对象用于存放数据(名值对)。

2、对象不能直接存放对象或数组。

3、数组存放元素有序号(序号起始值0)。

4、数组不能直接存放数据(名值对)。

JSON(JavaScript Object Notation)具有以下主要作用:

1. **数据交换**:JSON常被用于在不同系统之间进行数据交换。通过将数据格式化为JSON,可以轻松地在不同平台、不同语言的应用程序之间传输数据,而不需要担心数据格式的兼容性问题。

2. **Web服务**:在Web开发中,JSON常用于客户端和服务器之间的数据传输。例如,前端JavaScript可以通过AJAX请求从服务器获取JSON格式的数据,并将其解析为JavaScript对象后进行处理。

3. **配置文件**:JSON格式也可以用作配置文件的存储格式。许多应用程序使用JSON来存储和读取配置信息,例如Web应用程序的配置文件、API的配置等。

4. **API数据传输**:许多Web服务的API(Application Programming Interface)以JSON格式返回数据。开发人员可以通过HTTP请求获取JSON格式的数据,并将其解析为适当的数据结构用于在其应用程序中使用。

5. **移动应用程序**:JSON在移动应用程序开发中也非常常见。移动应用程序通常需要从服务器获取数据,而JSON是一种轻量级的数据格式,非常适合在移动设备上进行快速的数据传输和解析。

6. **数据存储**:一些数据库系统支持将数据以JSON格式存储,这样可以方便地存储复杂的数据结构,并且能够保持数据的易读性和可扩展性。

7. **跨平台开发**:由于JSON是一种与语言无关的数据交换格式,因此非常适合用于跨平台开发。无论是Web应用程序、移动应用程序还是桌面应用程序,都可以使用JSON作为数据交换的格式。

总的来说,JSON作为一种轻量级、易于理解和使用的数据交换格式,在各种领域都有着广泛的应用。

JSON非常的好用,只要掌握使用方法,通过不断的合理嵌套,就可以用它表达无数的信息量,在传输中非常的好用。

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

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

相关文章

Python 数学应用(四)

原文:zh.annas-archive.org/md5/123a7612a4e578f6816d36f968cfec22 译者:飞龙 协议:CC BY-NC-SA 4.0 第十一章:其他主题 在本章中,我们将讨论一些在本书前几章中没有涉及的主题。这些主题大多涉及不同的计算方式以及优…

什么是三高架构

三高架构是指在软件系统设计与开发中,注重解决高并发性、高可用性和高性能的架构设计模式。 高并发性:指系统能够处理大量并发请求的能力。在高并发场景下,系统需要具备有效的并发处理机制,以保证系统能够快速、准确地响应大量并…

【jquery】jquery使用Recorder.js实现录音并上传,调用阿里云接口语音转文字

阿里一句话识别语音数据时长不能超过60s。参考文档 实现功能&#xff1a; 1.点击拾音按钮开始录音&#xff0c;点击结束按钮结束录音并调取后台语音转文字接口 2.录音时长超过60s自动结束录音并调取后台语音转文字接口 <!-- 引用recorder插件 --> <script type"t…

记录-海思开发板的 嵌入式nginx和 php的移植(交叉编译环境配置)

嵌入式 lnmp搭建的记录 N&#xff1a;NginxP&#xff1a;php编译PHP可能遇到的问题configure阶段&#xff1a;Makefile-make阶段&#xff1a;Makefile-make install阶段&#xff1a; 文章比较水&#xff0c;并没有没解决什么实际问题&#xff0c;有点不好意思发布。但好像又记录…

Python 数据结构和算法实用指南(三)

原文&#xff1a;zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第七章&#xff1a;哈希和符号表 我们之前已经看过数组和列表&#xff0c;其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效…

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd

安装 k8s集群的问题&#xff1a;默认容器运行时从 Docker 改为 Containerd 1、背景2、容器运行时从 Docker 改为 Containerd2.1、安装 Containerd&#xff1a;2.2、生成 Containerd 的配置文件2.3 、创建 /etc/crictl.yaml 文件2.4 、配置 Containerd 服务开机自启 &#x1f49…

[c++][netcdf]通过c\c++读取字段的scale_factor与add_offset

函数&#xff1a;c void readScaleAndOffset(const char* FileName,const char* VarName) {NcFile dataFile(FileName, NcFile::read);NcVar Varf dataFile.getVar(VarName);//查看维度cout << "XSizef" << Varf.getDim(0).getSize() << endl;co…

安全认证Kerberos详解

文章目录 一、Kerberos入门与使用1、Kerberos概述1.1 什么是Kerberos1.2 Kerberos术语1.3 Kerberos认证原理 2、Kerberos安装2.1 安装Kerberos相关服务2.2 修改配置文件2.3 其他配置与启动 3、Kerberos使用概述3.1 Kerberos数据库操作3.2 Kerberos认证操作 二、Hadoop Kerberos…

海外仓管理系统的“实用性”讨论:没办法自由设置信息的,都是伪功能

和很多经营海外仓的企业都聊过这样一个问题&#xff1a;对于海外仓的管理系统&#xff0c;到底什么样的设计&#xff0c;什么样的功能才是真的有价值的。 那这就不得不说到一个概念&#xff1a;自由性。什么意思呢&#xff0c;海外仓看似都一样&#xff0c;大家都在经营仓储、…

亚信安慧AntDB:数据驱动的决策力量

亚信安慧AntDB数据库在运营商自主可控替换项目中的成功应用&#xff0c;具有极其重要的意义。该数据库的落地&#xff0c;不仅为这一项目注入了强大的支持力量&#xff0c;还在更大程度上提升了整体的运营效能。作为一种高效可靠的数据库解决方案&#xff0c;AntDB引入了先进的…

ppt里的音乐哪里来的?

心血来潮&#xff0c;想照着大神的模板套一个类似于快闪的ppt。 ppt里是有一段音乐的&#xff0c;那段音乐就是从幻灯片第二页开始响起的。 但是我就找不到音乐在哪。 甚至我把ppt里的所有素材都删除了&#xff0c;再看动画窗格&#xff0c;仍然是空无一物&#xff0c;显然&…

研究表明,全球互联网流量竟有一半来自机器人

据Cyber News消息&#xff0c;Thales Imperva Bad Bot近期做了一份报告&#xff0c;显示在2023年有49.6%的互联网流量竟来自机器人&#xff0c;比上一年增长 2%&#xff0c;达到自2013年以来观察到的最高水平。 报告称&#xff0c;这一趋势正对企业组织产生负面影响&#xff0c…

Oracle 正则,开窗,行列转换

1.开窗函数 基本上在查询结果上添加窗口列 1.1 聚合函数开窗 基本格式: ..... 函数() over([partition by 分组列,...][order by 排序列 desc|asc][定位框架]) 1&#xff0c;partition by 字段 相当于group by 字段 起到分组作用2&#xff0c;order by 字段 即根据某个字段…

《教学管理与教育研究》简介及投稿邮箱

《教学管理与教育研究》简介及投稿邮箱 《教学管理与教育研究》是教育部主管、语文出版社主办的国家级教育类学术期刊&#xff0c;本刊面向全国学校教育的发展管理、教学研究、科研创新和师资培养等领域&#xff0c;展示我国学校教育科研领域的最新成果&#xff0c;交流教学管…

Docker安装xxl-job分布式任务调度平台

文章目录 Docker安装xxl-job分布式任务调度平台1.xxl-job介绍2. 初始化“调度数据库”3、docker挂载运行xxl-job容器3.1、在linux的opt目录下创建xxl_job文件夹&#xff0c;并在里面创建logs文件夹和application.properties文件3.2、配置application.properties文件&#xff0c…

攻防演练作为红方,绕过SQL注入防护

绕过SQL注入防护通常涉及利用Web应用程序或中间件&#xff08;如Web应用防火墙&#xff0c;简称WAF&#xff09;的缺陷或不足。这些防护机制通常依赖于识别和阻止恶意的SQL查询模式&#xff0c;但通过一定的技术和策略&#xff0c;攻击者可以改变查询的结构或表现形式&#xff…

基于springboot+vue+Mysql的校园新闻网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

分布式锁设计

一、为什么需要分布式锁 1.1 单体项目同步实现 在单进程&#xff08;启动一个jvm&#xff09;的系统中&#xff0c;当存在多个线程可以同时改变某个变量&#xff08;可变共享变量&#xff09;时&#xff0c;就需要对变量或代码块做同步&#xff0c;使其在修改这种变量时能够线…

关于Git的一些基础用法

关于Git的一些基础用法 1. 前言2. 使用GitHub/gitee创建项目2.1 创建账号2.2 创建项目2.3 下载仓库到本地2.4 提交代码到远端仓库2.5 查看日志2.6 同步远端仓库和本地仓库 1. 前言 首先说一个冷知识&#xff08;好像也不是很冷&#xff09;&#xff0c;Linux和git的创始人是同…

客户关系管理(CRM)是什么?CRM 客户关系管理系统完整指南

通过本文&#xff0c;你将了解&#xff1a; CRM是什么样的软件呢&#xff1f; 企业CRM普遍存在哪些难题&#xff1f;又该怎样解决呢&#xff1f; CRM软件有什么样的功能&#xff1f; 未来CRM软件将朝什么方向发展呢&#xff1f; 以我们公司正在使用的CRM系统为例—— 简道云…