what-is-json-and-why-do-you-need-it-21nd

原始地址:https://dev.to/techlearners/what-is-json-and-why-do-you-need-it-21nd

‘’'在讨论JSON之前,我想先讲一个简单的例子,因为在示例之后解释JSON会更容易。假设我们正在开发桌面软件或Web应用程序。因此,对于桌面软件,我们需要保存用户所做的设置更改,以便当用户在其他时间再次打开软件时,无需再次更改设置。对于用户来说,每次启动都需要配置相同的更改是非常烦人的。那么,Web应用程序呢?Web应用程序需要存储许多临时配置或数据,以提供良好的用户体验。显然,开发人员不能让应用程序为某些临时会话数据而使数据库繁忙。现在,关于如何在存储上存储这些更改或临时数据的问题出现了。困惑吗?再次思考使用数据库,比如OracleMariadb吗?当然,我们可以这样做,但这不是一个有效的解决方案。好吧,暂时放下你的思考,我会把所有困难放在一边,只将数据存储为Text文件。哇,我们的存储问题解决了。但是,一个新的问题正敲门,如何检索数据并以与应用程序中应用的相同方式获得相同的数据结构?在一个简单的文本文件上,我们在任何程序中使用的数据结构的数据格式存在缺陷。这就是数据序列化的拯救生命概念,同时我们也离JSON非常接近。
何为数据序列化?
数据序列化是将结构化数据转换为一种格式的过程,该格式允许在需要时恢复其原始结构的共享或存储数据。序列化数据的原因是找到一种可以在不同应用程序之间轻松共享的某种通用格式。



什么是JSON?
JSON是一种数据交换格式,它使用可读性很强的文本来传输由数据结构组成的数据对象,是数据序列化的最广泛使用的格式。简单地说,JSON就是用JavaScript对象表示法编写的文本。JSON的全称是“JavaScript对象表示法”。许多开发人员不喜欢JavaScript是因为他们的观点。但是不要担心,如果你对JavaScript一无所知,那没关系。



为什么选择JSON?
JSON主要用于应用程序之间的数据交换。通过JSON将数据从一个应用程序解析到另一个应用程序非常容易,这是因为它的独立于语言的数据格式。几乎每种编程语言都通过官方或第三方支持JSON。现在,参考我的例子,JSON也可以用作任何应用程序的配置或临时数据存储文件。有一个重要的事实,由于其数据序列化格式破坏了ADT的封装性,JSON缺乏抽象数据类型 (ADT)功能,从而可能暴露私有实现细节。
一个名为“MongoDB”的非常流行的数据库使用类似JSON的文档结构。



JSON基础
JSON使用“.json”作为文件扩展名。您可以使用普通文本编辑器(如Windows的内置记事本)编写JSON文件。JSON支持字符串、数字、对象(JSON对象)/哈希图、数组/列表、布尔值和空数据类型。
让我们看一些例子



字符串
{
“name”: “Rizwan Hasan”
}



数字
{
“age”: 20
}

  • JSON字段名称需要双引号(“”)。
  • JSON使用冒号(“:”)分隔名称和值。



对象/哈希图
{
“student”: {
“name”: “Rizwan Hasan”,
“age”: 21,
“sex”: “Male”
}
}

这里的键“student”有一个对象值,该对象有一些名称。

JSON使用大括号(“{}”)进行对象分隔和逗号(“,”)进行名称分隔。



数组/列表
{
“students”: [
“Rizwan”,
“Sakib”,
“Natsu”
]
}

这里的键“students”有一个数组值,该数组有一些名称元素。

  • JSON使用方括号(“[]”)进行数组声明和逗号(“,”)进行元素分隔。



布尔值
{
“answer”: true
}




{
“nickname”: null
}



嵌套的数据类型
{
“students”: [
{
“id”: 101,
“name”: “Rizwan Hasan”,
“age”: 21,
“department”: “CSE”,
“sex”: “Male”,
“paid”: true,
“cgpa”: 2.13
},
{
“id”: 102,
“name”: “Faria Hasan”,
“age”: 20,
“department”: “BBA”,
“sex”: “Female”,
“paid”: true,
“cgpa”: 3.56
}
]
}



解释
这里我们存储了一些学生的信息。首先,有一个对象,其键名为“students”,值是用方括号括起来的数组。数组中有两个学生的信息。数组的每个元素也是一个对象,它们包含一些信息,如姓名、年龄、专业、性别、付费情况和GPA。姓名、专业和性别是字符串。学号、年龄和GPA是数字。最后,付费情况是布尔值。



结论
到目前为止,我讨论了JSON,但仍然有很多东西要了解,比如如何与不同的编程语言一起使用它,以及如何在两个或多个语言之间进行数据交换。在这里,我只专注于基础知识,因为在这之后,您可以更进一步地使用JSON,并使用升级版本的JSON称为YAML。要了解有关JSON的更多信息,我建议您参考Tutorialspoint的免费在线教程这里。将来,我将尝试介绍如何在流行的编程语言如Python、Java、Kotlin和C++中使用JSON。*在下面的讨论部分分享您的观点,当然如果有任何问题也可以提出。*别忘了关注我们。
💡
并订阅我们的YouTube频道 TechLearnersInc 和Telegram t.me/TechLearners 将会非常棒。



📌 在DEV Community的Twitter上推荐
DEV Community 👩💻👨💻
JSON是一种数据交换格式,它使用可读性很强的文本来传输由数据结构组成的数据对象。以下是基础知识!
{ 作者:
[@Linux_Saikat]} [#DEVCommunity] [dev.to/techlearners/w…]17:38 PM - 26 Dec 2020
‘’’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值