问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

JSON与现代Web开发:数据交互的最佳选择

创作时间:
作者:
@小白创作中心

JSON与现代Web开发:数据交互的最佳选择

引用
CSDN
1.
https://blog.csdn.net/qq_17153885/article/details/143094955

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。它以文本格式存储数据,常用于Web应用中的数据传输,尤其是在客户端和服务器之间。

1.1 简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。它以文本格式存储数据,常用于Web应用中的数据传输,尤其是在客户端和服务器之间。

1.2 发展

JSON的发展历程可以概括如下:

  1. JSON的诞生
  • JSON的概念最早由Douglas Crockford在2001年提出。当时,Crockford和Chip Morningstar在旧金山湾区的一间车库里测试了一个想法,发出了第一个JSON格式的消息。这个消息实际上是JavaScript代码,但不需要任何特殊解析工作,因为JavaScript解释器可以直接处理它。
  • 最初的JSON信息与JavaScript解释器发生了冲突,因为JavaScript保留了大量的关键字。为了避免冲突,Crockford决定要求所有的JSON键名都加上引号,这样被引号引起来的键名会被JavaScript解释器识别成字符串。
  • Crockford和Morningstar最初想将这种数据格式命名为“JSML”,但由于缩写已被使用,他们最终选择了“JavaScript Object Notation”,即JSON。
  1. JSON的发展
  • 2005年,JSON迎来了一次大爆发。网页设计师和开发者Jesse James Garrett在其博客文章中创造了“AJAX”一词,描述了如何利用JavaScript和XMLHttpRequest构建新型应用程序。虽然AJAX中的“X”代表XML,但Garrett指出JSON可以完全替代XML。
  • 随着AJAX技术的流行,JSON逐渐成为Web应用程序数据交换的主流格式。Google的Gmail和Google Maps等应用广泛采用了AJAX和JSON。
  1. JSON的标准化与普及
  • 2006年,Dave Winer抱怨JSON正在重新发明XML。Crockford回应称,重造轮子的好处是可以得到一个更好的轮子。
  • 2013年,ECMA国际发布了ECMA-404标准,正式定义了JSON的数据交换格式,详细描述了JSON的语法和结构。
  • 2014年,IETF发布了RFC 7159,进一步规范了JSON的语法和使用,详细说明了JSON的解析和生成规则,并明确了JSON与JavaScript的关系。
  1. 当今JSON的地位
  • 目前,JSON已经成为全球应用程序通过互联网通信时的主要数据交换格式。几乎所有的大型企业都采用了JSON,它在十大最受欢迎的Web API接口中占据了绝大多数。
  • JSON也在程序编码级别和文件存储上被广泛采用。在Stack Overflow上,关于JSON的问题越来越多,反映出JSON越来越流行。

JSON的发展历程显示了它从一种简单的数据格式到成为现代Web开发中不可或缺的一部分的转变。随着技术的发展,JSON可能会继续演进,以满足新的需求和挑战。

1.3 特点

  1. 易于理解:
  • JSON格式简洁明了,数据结构清晰,易于人类阅读和编写。
  1. 轻量级:
  • 与XML等其他数据格式相比,JSON的语法更加简单,数据量更小,有助于提高网络传输效率。
  1. 数据结构:
  • JSON采用键值对的方式表示数据,支持简单的数据类型(字符串、数字、布尔值、数组、对象和null),使得数据结构的表达更加灵活。
  1. 跨语言支持:
  • JSON可以被多种编程语言(如JavaScript、Python、Java、C#等)轻松解析和生成,具有良好的跨平台能力。
  1. 与JavaScript兼容:
  • JSON源自JavaScript,因此在JavaScript环境中处理JSON数据特别方便,常通过内置的
    JSON.parse()

    JSON.stringify()
    方法进行数据解析和生成。

1.4 应用场景

  1. Web API:
  • JSON常用于RESTful API的数据格式,用于客户端与服务器之间的数据交换。
  • 例如,一个Web应用可能会向服务器发送一个JSON格式的请求,服务器处理后返回一个JSON格式的响应。这种方式在RESTful API设计中尤为常见。
  
// 客户端发送的JSON请求
{
  "userId": "12345",
  "action": "subscribe"
}
// 服务器返回的JSON响应
{
  "status": "success",
  "message": "User subscribed successfully."
}
  

在这个示例中,客户端发送了一个包含用户ID和行动指令的JSON请求,服务器处理后以JSON格式返回状态和消息。

  1. 配置文件:
  • 一些应用程序使用JSON格式作为配置文件,因其易读性和结构化特性。
  1. 数据存储:
  • NoSQL数据库(如MongoDB)采用JSON或类似的BSON格式存储数据。
  1. 异步数据传输:
  • 在AJAX请求中,JSON常作为数据传输格式,使得异步操作更为方便。

二、JSON语法

JSON(JavaScript Object Notation)的语法规则非常简洁,主要包括以下几个部分:

2.1 语法规则

  • JSON数据由键值对组成,

  • 键(Key): 键必须是字符串,且必须用双引号括起来。例如:
    "name"

  • 值(Value): 值可以是字符串、数字、布尔值、对象、数组或
    null

  • 分隔符:

  • 键值对之间用逗号
    ,
    分隔。

  • 在对象中,键和值之间用冒号
    :
    分隔。

2.2数据类型

JSON支持以下几种基本数据类型:

  1. 字符串(String):
  • 用双引号
    "
    包围,可以包含 Unicode 字符、转义字符等。
  • 示例:
    "hello world"
  1. 数字(Number):
  • 可以是整数或浮点数,不需要引号。
  • 示例:
    123
    ,
    45.67
  1. 布尔值(Boolean):
  • 表示真(
    true
    )或假(
    false
    )。
  • 示例:
    true
    ,
    false
  1. 数组(Array):
  • 由一个或多个值构成的有序集合。
  • 示例:
    [1, 2, 3]

    ["apple", "banana"]
  1. 对象(Object):
  • 键值对的无序集合。
  • 示例:
    {"key": "value"}
  1. 空值(Null):
  • 表示空值,用
    null
    表示。
  • 示例:
    null

2.3 基本结构

JSON的数据结构主要由两种形式构成:对象(Object)和数组(Array)。

对象(Object)

  • 定义: 对象用大括号
    {}
    包围,内部由一个或多个键值对组成。每个键(Key)是一个字符串,后面跟一个冒号
    :
    和对应的值(Value)。

  • 格式:

  
{
  "key1": value1,
  "key2": value2,
  ...
}
  
  • 示例:
  
{
  "name": "Alice",
  "age": 30,
  "isStudent": false
}
  

数组(Array)

  • 定义: 数组用方括号
    []
    包围,内部为有序的值列表,值之间用逗号
    ,
    分隔。

  • 格式:

  
[
  value1,
  value2,
  ...
]
  
  • 示例:
  
[
  "apple",
  "banana",
  "cherry"
]
  

2.4 其它规则

空格和换行

  • JSON标准允许在对象和数组的元素之间、键值对之间以及数组元素之间添加空格、换行符、制表符等空白字符,以增强可读性。

注释

  • 标准的JSON不支持注释。任何形式的注释(如
    //

    /* */
    )都会导致JSON无效。

转义字符

  • 在JSON字符串中,某些特殊字符需要使用转义字符来表示,例如:

  • "
    表示双引号

  • \
    表示反斜杠

  • /
    表示正斜杠

  • \b
    表示退格符

  • \f
    表示换页符

  • \n
    表示换行符

  • \r
    表示回车符

  • \t
    表示制表符

  • 此外,还可以使用
    \u
    后跟四个十六进制数字来表示Unicode字符。

大小写敏感

  • JSON的键和值对大小写敏感。

编码

  • JSON通常使用UTF-8编码,但也可以是UTF-16或UTF-32。

遵循这些基本规则,就可以创建有效的JSON数据。JSON的简洁性和灵活性使其成为数据交换和配置文件的流行选择。

三、JSON的扩展和相关技术

JSON除了其基本形式外,还有一些扩展和相关技术,使其在不同场景中更具灵活性和功能性。

3.1 JSON的扩展

JSONP(JSON with Padding)

  • 概念: JSONP是一种允许网页从不同域名请求数据的技术,解决了浏览器的同源策略限制。

  • 工作原理: 通过动态创建

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号