资讯专栏INFORMATION COLUMN

JSON

Zhuxy / 3213人阅读

摘要:一直在用,发现并不了解。并且独立于语言,可以在各语言间进行数据交换。字符是大小敏感的。注意是转义字符,还支持其他转义字符,见参考数字可以整数,浮点数,科学计数法表示。元素类型最好是同一类型,毕竟大多数语言不支持元素类型多种类型。

一直在用JSON,发现并不了解JSON。好吧,花点时间学习下。

一、JSON的概念:什么是JSON?

全称:JavaScript Object Natation(JS对象标记法),JSON用字符串的格式表示结构化数据。并且独立于语言,可以在各语言间进行数据交换。

二、JSON的语法:JSON是如何通过字符串表示结构数据的? 2.1 JSON的类型(6种):

JSON有6中数据类型示:object, array, number,string,bool(true, false),null(之前一直以为JSON数据必须要包在花括号里,囧)。绝大部分语言都有这6种数据类型,这样JSON就可以跨语言传递了(即独立于语言)。

// 以下都是合法的JSON
"{"a": 1}" // 对象
"[1,2,3,4]" // 数组
"[1,true,null,{"a":1}]" // 数组 注意表示不能夸语言,有些语言限制数组的元素类型一致
"1" // number 1
"true" // bool true
"null" // null
""abc"" // 字符串 "abc"

// 以下是否非法的JOSN字符串
"undefined"
2.2 String

JSON 字符串是Unicode编码的,用双引号表示字符串(有些语言中(如JS)单引号也能表示字符串,但是毕竟大部分语言不支持这种表示,所以JSON字符串只能是双引号表示)。
字符是大小敏感的。

""a
c"" // "a
c" 注意 
是转义字符,JSON还支持其他转义字符,见参考
""abc"" // "abc"
2.3 Number

JSON 数字可以整数,浮点数,科学计数法表示。

"1" // 1
"0.1" // 0.1
"-1" // -1
"1e+2" // 1* (10 * 10)   -> 100 (e大小写不区分,即也可以这样表示"1E+2")
"1e-2" // 1* (0.1 * 0.1) -> 0.01

注意
A:正数不能带”+“表示
B:只能表示10进制的数字,其他进制不能表示。

2.4 对象

对象就是键值对集合了,值可以是6中类型的任意一种。

"{"a": 1, "b": true}" // 格式就是"{name1: value1, name2:value2}"
2.5 数组

数组时值的集合,值可以是6中类型的任意一种。元素类型最好是同一类型,毕竟大多数语言不支持元素类型多种类型。

"[1,2]"
"[{"a":1}]"
三、日期的表示

大部分语言日期都是个对象,并且不是简单的Plain Object,导致日期在各语言中JSON表示不完全一样(JavaScript中JSON.stringify方法通过Date.toString方法把日期转成字符串),所以在有日期的数据交换时要注意。一般处理方法:将日期转成各语言都支持的日期字符串格式(如:"yyyy-MM-dd hh:mm:ss"),还可以将日期通过毫秒数值表示。

四、JSON Schema

JSON Schema是一种特殊的JSON数据,它是用来描述JSON数据的。

参考

JSON.org

ajv

【第1276期】JSON Schema 那些事儿:基本概念

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83787.html

相关文章

  • #干货盘点#JSON-C API

    摘要:什么是对象简谱是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 什么是Json​ Json(JavaScript Object Notation,JS 对象简谱)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。一些合法的Json实例:键值对:(可以没有键只有值)键 ...

    codeGoogle 评论0 收藏0
  • Vultr机房测评 - Vultr新加坡Singapore机房综合速度和线路去程回程测试

    摘要:在这里今天老蒋在针对商家新加坡机房进行测评。关于云服务器相关的文章优惠码优惠码整理专题每月更新最新优惠活动新用户最高送美元韩国机房机房测评韩国首尔机房综合速度和线路去程回程测试新人教程新人系列教程新注册账户且用优惠码享受赠送余额老蒋在昨天的文章中有提到Vultr商家韩国首尔机房,虽然离我们距离比较近,但是人家设立的机器并非针对我们大陆用户的,而是除了我们之外的其他亚洲地区的速度是比较好的,比...

    leejan97 评论0 收藏0
  • 经典VPS主机新增日本大阪软银和荷兰联通AS9929机房线路速度测试

    摘要:最近一段时间,经典主机新增日本大阪软银机房,国内的值相当不错,特别适合联通用户访问使用。日本经典主机电信线路日本经典主机电信线路这是经典的日本大阪软银机房电信回程线路。经典瓦工的VPS主机现在已经完全走了高端领域了,CN2 GIA的VPS主机现在连月付都没有了,只有季付了,平均下来月付必须是十几美元才可以,价格实在是太贵了。不过,好在经典VPS主机的线路质量不错,而且机房的带宽给得足,用于建...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

最新活动
阅读需要支付1元查看
<