JSON初步简介篇

前言

  在学习的过程中我们会发现,json数据或者json格式的配置文件我们是经常遇到的。因此我就特意查找了有关json的资料,发现网上对于json的书籍或者讲解的资料好像与其用处有些不匹配了。
  因此在较为深入了解之后,就想写这一篇学习笔记来记录一下。

json 是什么

数据交换格式是一种在不同平台间传递数据的文本格式。而json就是一种数据交换的格式。或者我们还听说过XML这种数据交换格式。数据交换格式很重要,我们需要它们来实现不同系统之间的数据交换。

  JSON的全程是 JavaScript object natation(JavaScript 对象表示法)。虽然JSON源于JavaScript的一个子集,但是我们没必要先去了解JavaScript。因为数据交换格式是独立于语言的。

  JSON是基于JavaScript对象字面量。 JavaScript对象表示法,在去掉JavaScript之后,我们使用的是一种基于对象表示法的数据交换格式。“对象”在我们编程应该是非常熟悉了的。表示法指的是一个可以表示诸如数字或单词等数据的字符系统。

JSON的语法

JSON是以对象来对数据进行封装的。该数据对象用一个花括号包起来,其中是若干键值对,

如下就是一个正确的JSON格式。

{
	"name":"lihua",
	"age":2
}
  • 键必须是一个用双引号包括的字符串,而值则是JSON中任意的数据类型。
  • 字符串必须使用双引号来进行标注。
  • 在JSON中,多个键值对使用逗号来分隔。
  • JSON文件使用.json扩展名

  使用字符串的时候还要注意转义字符的使用,如下表是一些常用的转义字符

正确格式作用
\/正斜线
\b退格符
\f换页符
\t制表符
\n换行符
\r回车符
\u后面跟十六进制字符
\"双引号
\\反斜线

  JSON中的值可以为数组类型,一般我们是规定数组中的类型是要一致的。(为了方便,如果不一致,语法是合规的)。同时JSON的值也可以是对象,也就是可以嵌套对象。如下

{
	"person":{
		"name": "Lindsay",
		"head":{
			"hair":{
				"color":"light blond",
				"length":"short"
			}
		},
		"eyes":"green"
	}
}

JSON Schema

JSON Schema 是为了验证数据一致性的问题。一般会在发送的时候回答下面的三个问题

  • 值得数据类型是否正确?可以具体规定一个值是数字、字符串等类型
  • 是否包含所需要的数据?可以具体规定哪些数据是需要的,哪些是不需要的
    = 值得形式是不是我需要的?可以指定范围、最小值和最大值
  1. JSON Schema 使用JSON来书写。首先需要再JSON第一个键值对中,声明其为一个schema文件,如下,键必须为 "$schema",值必须为所用草拟版本的链接
{
	"$schema":"http://json-schema.org/draft-04/schema#"
}
  1. 为了回答那三个问题,分别需要两个键值对,键分别为"properties""required" .如下面这个例子,就定义了猫的属性类型、必填字段和属性的限制
{
"$schema":"http://json-schema.org/draft-04/schema#",
"title":"cat",
"properties":{
	"name":{
		"type":"string",
		"minLength":3,
		"maxLength":20
	},
	"age":{
		"type":"number",
		"minimum":0
	}
 },
 "requied":{
 	"name",
 	"age"
 }
}

请求数据对象与Web API

或者我们或多或少都接触过通过某种方式取访问公开的API来获得返回的数据。这里就稍微介绍一下返回格式为JSON的一些情况。

  • Web API:通过HTTP与服务进行交互的一系列指令与标准。
  • 序列化:将对象转化为文本的操作。这一般是用于我们将数据发送数据的情况。
  • 反序列化:将序列化的文本转化为对象的操作。常用语我们接受返回的数据是文本格式,我们需要先转换为对象,才方便对数据进行提取和操作。
  • JAAX,指的是JavaScript中的异步(后台)操作。当幕后请求的是JSON数据时候,这种技术可以称为AJAJ
  • 对于网络上的API 有些是公开的,有些则是涉及到限制访问的域名。如一个银行提供的API,可以只允许其指定的几个域名能够进行访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值