JSON是什么?

前端 潘老师 7个月前 (10-19) 132 ℃ (0) 扫码查看

JSON(JavaScript对象表示法)是一种开放标准格式,它是一种轻量级的基于文本的格式,专门设计用于人类可读的数据交换。它是一种与编程语言无关的数据格式,支持几乎所有类型的编程语言、框架和库。

在2000年代初期,JSON最初由Douglas Crockford规定。2013年,JSON被标准化为ECMA-404,2017年发布了RCF 8259。

JSON是一种用于在Web上交换数据的开放标准。它支持数据结构,如对象和数组,因此很容易从JSON中编写和读取数据。

在JSON中,数据以键-值对的形式表示,花括号用于包含对象,在每个名称后面跟有冒号。逗号用于分隔键-值对。方括号用于包含数组,其中每个值以逗号分隔。

JSON的特点

包括:

  • 简单性
  • 开放性
  • 自我描述性
  • 国际化
  • 可扩展性
  • 互操作性

为什么我们使用JSON?

由于与其他可用选项相比,JSON是一种易于使用的轻量级语言数据交换格式,因此可用于API集成。以下是JSON的优点:

  • 更少冗长:与XML相比,JSON采用紧凑风格以提高用户可读性。在处理复杂系统时,JSON往往会带来显著的改进。
  • 更快:与XML相比,JSON解析过程更快,因为XML中的DOM操作库需要额外的内存来处理大型XML文件。但是,JSON需要更少的数据,最终减少了成本并提高了解析速度。
  • 可读性:JSON结构易于阅读和理解。无论您使用哪种编程语言,都可以轻松地映射领域对象。
  • 结构化数据:在JSON中使用了映射数据结构,而XML遵循了树状结构。键-值对限制了任务,但有助于创建可预测且易于理解的模型。

JSON数据类型

以下是最常用的JSON数据类型。

数据类型 描述 示例
字符串 字符串总是用双引号括起来。它可以包含数字、字母和特殊字符。 “student”, “name”, “1234”, “Ver_1”
数字 数字代表数值字符。 121, 899
布尔值 它可以是真(True)或假(False)。 true
空值 这是一个空的数值。

JSON对象

在JSON中,对象指的是包含在花括号中的字典,即{ }。这些对象是以键/值对的形式编写的,其中键必须是字符串,值必须是有效的JSON数据类型,如字符串、数字、对象、布尔值或null。键和值之间由冒号分隔,每个键/值对由逗号分隔。

示例:

{"name" : "Jack", "employeeid" : 001, "present" : false}  

JSON数组

在JSON中,数组可以被理解为对象的列表,主要包含在方括号中[ ]。数组的值可以是字符串、数字、对象、数组、布尔值或null。

示例:

[
    {
        "PizzaName": "Country Feast",
        "Base": "Cheese burst",
        "Toppings": [
            "Jalepenos",
            "Black Olives",
            "Extra cheese",
            "Sausages",
            "Cherry tomatoes"
        ],
        "Spicy": "yes",
        "Veg": "yes"
    },
    {
        "PizzaName": "Veggie Paradise",
        "Base": "Thin crust",
        "Toppings": [
            "Jalepenos",
            "Black Olives",
            "Grilled Mushrooms",
            "Onions",
            "Cherry tomatoes"
        ],
        "Spicy": "yes",
        "Veg": "yes"
    }
]

在上面的示例中,”Pizza”对象实际上是一个数组。它包含了五个对象,即PizzaName、Base、Toppings、Spicy和Veg。

JSON与XML的区别

JSON代表JavaScript对象表示法,而XML代表扩展标记语言。如今,JSON和XML广泛用作数据交换格式,并已被应用程序作为一种存储结构化数据的技术采用。

JSON和XML之间的区别包括:

方面 JSON XML
学习难度 学习容易。 比JSON更复杂学习。
读写简便 读写简单。 比JSON更复杂的读写。
数据结构 面向数据。 面向文档。
安全性 相对于XML较不安全。 高度安全。
显示能力 不提供显示能力,因为它是一种标记语言。 提供显示能力,因为它是一种标记语言。
数组支持 支持数组。 不支持数组。
示例
[
{
"name" : "Peter",
"employed id" : "E231",
"present" : true,
"numberofdayspresent" : 29
},
{
"name" : "Jhon",
"employed id" : "E331",
"present" : true,
"numberofdayspresent" : 27
}
]

 

<name>
<name>Peter</name>
</name>

 


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/front/9866.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】