Maison > Article > interface Web > JSON 必知必会 观后记
术语
可移植性
平台和系统间传输信息的兼容性。
JSON
JavaScriptObjectNotation 对象表示法。
数据交换格式
用于不同平台或系统间交换数据的文本。
字面量
字面意思与其想表达的意思完全一致的值。
变量
通过形如X的标识符来表示的,可以修改的一类值。
最大移植性
通过保证数据本身对于平台和系统的兼容性来提供超越数据格式本身的可移植性。
名称-值对
指拥有名称和对应值的属性和特征(也叫键值对)。
语法验证
json格式的验证。
一致性验证
关注独特的数据结构验证。
JSON中的字符串类型
一个字符串值,如“你是个好人”,使用双引号包裹。
概念
JSON是一种数据交换格式。
JSON独立于编程语言。
JSON基于JavaScript对象的字面量表示法(重点在于表示法)。
JSON表达数据的方式对通用的编程概念都很友好。
JSON基于JavaScript对象字面量表示属性的语法,但并不包含与JavaScript对象字面量的函数相关部分。
JSON的名称-值对中,名称始终被双引号包裹。
JSON的名称-值对中,值可以是字符串,数字,布尔值,null,对象式数组。
JSON中的名称-值对列表始终被花括号包裹。
JSON中多个名称值对使用逗号分隔。
JSON文件使用.json扩展名。
JSON的媒体类型是application/json。
JSON中的布尔类型的值只有true和false,所有字母必须小写。
JSON中的null值的所有字母必须小写,表示空值。
JSON中的数字类型,一个数字值,如66,可以是正整数,负整数,小数,指数。
对象和数组很关键的区别就是,对象是名称-值对构成的列表或集合,数组是值构成的列表和集合。
对象和数组另一个关键区别是,数组中所有值应具有相同的数据类型。
术语
JSON中的数组
数组是值的集合或列表,每个值都可以是字符串,数字,布尔值,对象或数组中的任何一种。数组必须被[]包裹,且值与值之间用逗号分隔。
JSON中的对象类型
对象类型是使用逗号分隔的名称-值对构成的集合,并使用{}包裹。
JSON Schema
数据交换中的一种虚拟合同。
服务端(web开发中的)
当网页式资源被请求时,在服务器上执行的一系列操作。服务器为互联网浏览器提供其处理和加载的响应。
客户端(web开发中的)
当浏览器请求的界面加载完毕时执行的一系列操作,通常是指HTML,CSS和JavaScript。
概念
JSON验证器负责验证语法错误,JSON Schema负责提供一致性验证。
JSONSchema是负责数据接收第一道防线,也是数据发送方节约时间,保证数据正确的好工具。
JSONSchema可以解决下列一致性验证的问题
1.值的数据类型是否正确? 可以具体规定一个值是数字、字符串等类型。
2.是否包含所需要的数据? 可以具体规定哪些数据是需要的,哪些不需要的。
3.值的形式是不是我需要的? 可以指定范围,最小值最大值。
JSON本身不构成什么威胁,它只是文本。
在定位JSON安全问题时,应该记住以下3件事.
1.不要使用顶级数组,顶级数组是合法的JavaScript脚本,他们可以用