前言
这几天工作中需要了解json的基本使用,所以抽时间在网上找了点资料学习了一下,这里进行简单总结,和大家分享一下。
一、什么是JSON ?
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),JS对象简单数据
格式
JSON 是轻量级的文本数据交换格式,JSON 是存储和交换文本信息的语法,类似 XML。
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语
言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,
JSP,.NET)编程语言都支持JSON。C、Python、C++、Java、PHP、Go等编程语言都支持
JSON。
JSON 具有自我描述性,更易理解
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析
器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的
JavaScript 对象。
二、JSON 和XML的区别是什么?
相同之处:
(1)JSON 是纯文本
(2)JSON 具有"自我描述性"(人类可读)
(3)JSON 具有层级结构(值中存在值)
(4)JSON 可通过 JavaScript 进行解析
(5)JSON 数据可使用 AJAX 进行传输
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
不同之处:
(1)没有结束标签
(2)更短
(3)读写的速度更快
(4)能够使用内建的 JavaScript eval() 方法进行解析
(5)使用数组
(6)不使用保留字
保留字(reserved word),指在高级语言中已经定义过的字,程序员不能再将这些字
作为变量名、过程名或函数名使用。
目前实际项目开发中一般使用XML进行项目配置,使用JSON进行数据交互;
三、JSON 的基本语法
JSON 语法是 JavaScript 语法的子集,关于json语法的学习,我阅读了以下几篇文章,分享给大家:
https://www.runoob.com/json/json-syntax.html
https://blog.csdn.net/qq_45781387/article/details/121242590
总结几点:
JSON 对象使用在大括号 {...} 中书写。
对象可以包含多个 key/value(键/值)对。
key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组,
布尔值或 null)。
key 和 value 中使用冒号 : 分割。
每个 key/value 对使用逗号 , 分割。
JSON 数组在中括号中书写。
中括号[]保存的数组是值(value)的有序集合。一个数组以左中括号“[”开始,右中括号“]”
结束,值之间使用逗号“ , ”分隔。
JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或
null)。
JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,
包括函数,日期,及 undefined。
以上三部分内容参考了:菜鸟教程——JSON 教程
//一个示例json,供大家分析语法进行学习
{
"sites": {
"site": [
{
"id": "1",
"name": "菜鸟教程",
"url": "www.runoob.com"
},
{
"id": "2",
"name": "菜鸟工具",
"url": "c.runoob.com"
},
{
"id": "3",
"name": "Google",
"url": "www.google.com"
}
]
}
}
四、使用C语言操作JSON
这是一个专家级大佬作者写的文章,我看完觉得写得很好,很适合学习,看完这篇文章应该就会使用C操作JSON了,要是有什么问题欢迎大家在评论区交流!
本篇文章很多内容直接使用了别人的文章链接,很多人可能会觉得我在充水,我自己都觉得自己在摆烂 。😂 😂 😂但是没办法,网上这样的文章太多了,内容大同小异,我也不想再制造垃圾了,所以就把自己学习的觉得写的不错的文章整理分享给大家。抱歉了! 🙏 🙏 🙏