摘要:简介是用于结构化数据序列化的一种文本格式,包含种基础类型字符串,数字,布尔和和两种结构类型对象和数组。对象是一个由零或者多个名值对组成的无序集合,其中名值对中名是字符串类型,值则可以是字符串,数字,布尔,,对象或数组类型。
Json
JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换格式。它从ECMAScript编程语言标准(ECMAScript Programming Language Standard)衍生而来。JSON定义了一组用于表示结构化数据的可移植的格式化规则。
简介JSON是用于结构化数据序列化的一种文本格式,JSON包含4种基础类型(字符串,数字,布尔和null)和两种结构类型(对象和数组)。
字符串是一个由零或者多个Unicode字符组成的序列。
对象是一个由零或者多个名/值对组成的无序集合,其中名/值对中名是字符串类型,值则可以是字符串,数字,布尔,null,对象或数组类型。
数组是一个由零或者多个值组成的有序序列。
JSON的设计目标是它应当是尽可能小的,可移植的,文本化的,并且可以作为JavaScript的一个子集。
一个JSON文本是一个标记(token)序列,标记包含6种结构字符,字符串,数字和3个字面量。
结构字符:[ 左中括号,{ 左大括号, ] 右中括号, } 右大扩号,: 冒号,, 逗号。6种结构字符前后都可以添加无意义的空白字符。如:水平制表符 ,换行符 ,回车符
字面量: false,null,true。字面量MUST是小写的,其他任何字面量都是不允许的。
对象结构表示为一对大括号包裹着0到多个键/值对(或者叫成员)。键/值对中键是一个字符串,后面是一个冒号,用来分隔键和值。值后面是一个逗号用来分隔值和下一个键/值对的键。一个对象内的键SHOULD是唯一的。
数组结构表示为一对中括号包裹着0到多个值(或者叫元素)。值之间用逗号分隔。
数字的表示和其他大部分语言相似。数字包含一个以可选的减号为前缀的整数部分,其后面可以跟有小数部分和或指数部分。八进制或者十六进制的形式是不允许的。以0开头也是不允许的。小数部分是一个小数点后跟随一位或多位数字。指数部分以不限大小写的字母E开头,之后可跟一个加号或减号。E和可选的符号后可跟一位或多位数字。不能被表示为数字的序列(例如,无穷大和NaN)的数字值是不允许的。
字符串用引号作为开头和结尾。除了以下一些必须被转义的字符以外所有的Unicode字符都可以直接被放在字符串中:引号(”或’),反斜杠()和控制字符(U+0000 到 U+001F)。
编码JSON文本SHALL使用unicode编码。默认的编码方式为UTF-8。
由于JSON文本的头两个字符一定是ASCII字符[RFC0020],因此可以通过观察第一组4个8位字节来判断字节流是UTF-8,UTF-16(BE或LE)还是UTF-32(BE或LE)编码的。
JSON解析器可以将JSON文本转换为其他表示方法。JSON解释器MUST能接受符合JSON语法的所有文本。JSON解析器MAY能接受非JSON形式的文本。
生成器JSON生成器能够生成JSON文本。其生成结果MUST严格符合JSON的语法。
IANA(互联网数字分配机构)方面的考虑JSON文本的MIME媒体类型是application/json。JSON可以用UTF-8,UTF-16和UTF-32编码表示。如果使用UTF-8,则JSON是8位字节兼容的。如果是UTF-16或UTF-32,则必须使用二进制内容传输编码。
通常,脚本语言都有安全问题,JSON作为JavaScript的一个子集,但由于它排除了分配和调用,所以它是安全的。
JSON发布规范:RFC 4627
Json示例{ "Image": { "Width": 800, "Height": 600, "Title": "View from 15th Floor", "Thumbnail": { "Url": "http://www.example.com/image/481989943", "Height": 125, "Width": "100" }, "tags": [ "小清新", "动物" ] } }参考规范
[ECMA] European Computer Manufacturers Association, “ECMAScript
Language Specification 3rd Edition”, December 1999,
[RFC0020] Cerf, V., “ASCII format for network interchange”, RFC 20,
October 1969.
[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate
Requirement Levels”, BCP 14, RFC 2119, March 1997.
[RFC4234] Crocker, D. and P. Overell, “Augmented BNF for Syntax
Specifications: ABNF”, RFC 4234, October 2005.
原文参考:Json格式定义
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64574.html
摘要:该篇主要以代码示例为主,因为上不去,看不到这个官方文档和。因为接下来的底层默认使用的就是。和功能是一致的。区别是不会抛出异常,而会抛出异常。而解析输入的文本内容依据默认的解析文本的模式。 Json-smart 该篇主要以代码示例为主,因为google上不去,看不到Json-smart这个官方文档和API。故只例举一些代码示例。因为接下来的Json-path底层默认使用的就是JsonSm...
pygame作为python的一个平台库,在做游戏的时候,需要学习的内容还是比较的多的,主要涉及到的内容有相关的学习笔记,包括怎么设置字体,另外还有就是怎么设置其显示中文呢?下面就给大家详细解答下。 一、获得可用字体 importpygame print(pygame.font.get_fonts()) 结果: ['arial','arialblack...
游戏界面,国外的一些游戏,还是以英文为主,那么,国内的游戏,大多覆盖的是中文字体。那么,我们怎么样将英文字体修改成为中文,并且能够正确的显示出来呢?下面就给大家详细解答下。 一、获得可用字体 importpygame print(pygame.font.get_fonts()) 结果: ['arial','arialblack','bahns...
入坑 Python自从进入公司,到现在也有半年的时间。这半年的时间从 python 到入门到开发了几个小项目,类型涵盖了web应用 程序、爬虫程序 (scrapy),python脚本工具,自动化工具。对 python 语言也越来越熟悉,当然也有所感悟和总结。首先 Python 真的让语言成 了一个工具,入门代价很小,上手能够开发出小工具,可以更快体验到编程的乐趣。但是做到pythonic需要更多的...
以下是一些适合个人使用的AI训练云算力平台的推荐:Compshare:更适合国内用户使用的,高性价比云算力平台,低至1元/小时起。高性能AI算力资源,提供T4/V100S/2080Ti/3090/P40等多种配置GPU,预装TensorFlow、Pytorch、CUDA等算法框架,开机即用。Amazon EC2:亚马逊的弹性计算云服务提供了各种实例类型,包括GPU实例,适用于深度学习和机器学习任务...
阅读 2595·2023-04-25 15:07
阅读 704·2021-11-24 10:21
阅读 2298·2021-09-22 10:02
阅读 3516·2019-08-30 15:43
阅读 3221·2019-08-30 13:03
阅读 2286·2019-08-29 17:18
阅读 3585·2019-08-29 17:07
阅读 1872·2019-08-29 12:27