JSON数据调换格式

时间:2019-10-04 14:48来源:编程技术
1.json是什么 json全称是JavaScriptObjectNotation,JavaScript对象表示法,是一种 轻量级 的数据调换格式, 用法轻便 ,具有 易读性 且 易解析 ,常用来数据传输,作为分歧系统里头交换的"语言

1.json是什么json全称是JavaScriptObjectNotation,JavaScript对象表示法,是一种轻量级的数据调换格式,用法轻便,具有易读性易解析,常用来数据传输,作为分歧系统里头交换的"语言",独立于编制程序语言和平台,在RESTful标准的微服务架构中常用。

JSON(JavaScript Object Notation, JS 对象标志) 是一种轻量级的数据调换格式。它依据 ECMAScript (w3c制定的js标准)的三个子集,接纳完全独立于编制程序语言的文本格式来积累和表示数据。简洁和明晰的等级次序结构使得 JSON 成为美好的数据交流语言。 易于人观察和编排,同一时间也便于机器分析和变化,并实用地提高互连网传输功能。

除此而外json之外,还恐怕有一种常用的种类交换"语言"正是xml(Extensive 马克up Language扩充性标志语言),是和HTML类似的暗号语言,带有标签,易读性差,可是相对json帮衬复杂的数据类型,所以也视作一种重量级的数据调换格式,常用作多少传输和铺排文件。

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation);
  • JSON 是轻量级的文本数据沟通格式;
  • JSON 独立于言语:JSON 使用 JavaScript 语法来描述数据对象,不过 JSON 还是独立于言语和平台。JSON 剖析器和 JSON 库援助广大两样的编制程序语言;
  • JSON 具备本人描述性,更易精通。

2.json语法json是轻量级的,帮衬的数据类型有数值、字符串、布尔值、空值、数组、对象,这三种数据类型能够随意嵌套。1)轻松类型的语法数值:number字符串:用双引号表示如 "string"布尔值:true或false空值:null

1. 与XML对比

2)数组以"["开始,"]"甘休表示二个数组,数组中的成分用","隔开分离3)对象json代表对象中的成分必需是key-value对的样式,以"{"初叶,"}"结束表示八个目的,对象中每一种key-value对中间用","隔离,每一种成分的key是String类型的,value能够是json补助的轻巧等级次序,且key与value之间用":"隔绝

1.1 相似点

  • JSON 是纯文本
  • JSON 具备“自己描述性”(人类可读)
  • JSON 具备层级结构(值中存在值)
  • JSON 可透过 JavaScript 举行深入分析
  • JSON 数据可利用 AJAX 进行传输

3.java中json格式的深入分析方法Java中json的解析器有无数,如json-lib,org-json,fast-json,jackson等,上边是常用剖析器fast-json的用法,当然首先都要合法下载jar包,导入到工程中或许以maven信任的章程导入,本事运用。

1.2 不同点

  • 一直不截至标签
  • 更短
  • 读写的速度更快
  • 可见利用内建的 JavaScript eval() 方法进行深入分析
  • 运用数组
  • 不采取保留字

冗余度:XML 比 JSON 冗余,由此对大家的话编写 JSON 会更加快。
数组用法:XML 被用来说述结构化数据,不包罗数组;而 JSON 满含数组。
剖判:能够使用 JavaScript 的 eval 方法解析 JSON。当针对 JSON 应用这几个法蛇时,eval 再次来到描述的指标。


fast-json解析json代码

2. JSON 语准则则

JSON 语法是 JavaScript 语法的子集。在 JS 语言中,一切皆以对象。从而,任何援救的连串都得以因此 JSON 来表示,比方字符串、数字、对象、数组等。

  • 对象表示为键值对
  • 数量由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

而是对象和数组是相比新鲜且常用的两种档案的次序:

对象:指标在 JS 中是行使花括号包裹 {} 起来的剧情,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为指标的质量,value 为对应的值。键名能够使用整数和字符串来表示。值的项目能够是私行档案的次序。
数组:数组在 JS 中是方括号 [] 包裹起来的始末,数据结构为 ["java", "javascript", "vb", ...] 的目录结构。在 JS 中,数组是一种比较非常的数据类型,它也足以像对象那样接纳键值对,但依然索引使用得多。同样,值的种类能够是随便等级次序。

JSON 格式协助以下数据类型:

类型 描述
数字型(Number) JavaScript 中的双精度浮点型格式
字符串型(String) 双引号包裹的 Unicode 字符和反斜杠转义字符
布尔型(Boolean) true 或 false
数组(Array) 有序的值序列
值(Value) 可以是字符串,数字,true 或 false,null 等等
对象(Object) 无序的键:值对集合
空格(Whitespace) 可用于任意符号对之间
null
...import com.alibaba.fastjson.*;//导入alibaba的fastjson...public static void main(String[] args){ // json格式字符串 String json = "{"name":"baby","age":1}"; // 获取json对象 JSONObject obj = JSONObject.parseObject; // 从json对象中获取元素并输出 String name = obj.get; int age =  object.get; System.out.println; System.out.println;}

2.1 对象

  • 它是二个冬季的名/值对集中。
  • 目的使用大括号闭合,以 '{' 起始,以 '}' 结尾。
  • 各种名称前面都追随五个 ':'(冒号),名/值对选用 ,(逗号)分割。
  • 键名必得是字符串,并且不能够同名。
  • 当键名是大肆字符串时应当利用对象。

别的的解析器也都差不离,详见API

2.2 数组

  • 它是一个不改变的值会集。
  • 使用方括号闭合,那表示数组以 [ 开始,以 ] 结尾。
  • 值使用 ,(逗号)分割。
  • 数组索引可以以 0 或 1 开首。
  • 当键名是接连的整数时应有运用数组。

2.3 数字型

  • JavaScript 中的双精度浮点型格式,决意于达成。
  • 不能够运用八进制和十六进制格式。
  • 在数字中不可能使用 NaN 和 Infinity。
类型 描述
整形(Integer) 数字1-9,0和正负数
分数(Fraction) 分数,比如 .3,.9
指数(Exponent) 指数,比如 e,e+,e-,E,E+,E-

2.4 字符串型

  • 零个或三个双引号包裹的 Unicode 字符以及反斜杠转义系列。
  • 字符正是唯有贰个字符的字符串,长度为 1。
类型 描述
" 双引号
反斜线
/ 斜线
b 退格符
f 换页符
n 换行符
r 回车符
t 水平制表符
u 四位十六进制数字

2.5 布尔型

它包含 true 和 false 两个值。

2.6 空格

能够在任意一对符号之间插入。能够增添用来让代码更可读。

2.7 null

代表空类型。

2.3 JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

2.4 JSON数据结构

  • 名/值对聚焦: 这一数据结构由不一致的编制程序语言协理。
  • 不改变的值列表: 包涵数组,列表,向量或系列等等

3. JSON 模式(Schema)

JSON 格局是一种基于 JSON 格式定义 JSON 数据结构的正儿八经。它被写在 IETF 草案下并于 二〇一二 年到期。

JSON 模式:

  • 陈说现成数量格式。
  • 彻底的人类和机器可读的文书档案。
  • 总体的结构验证,有支持自动化测量检验。
  • 完全的布局验证,可用以表明顾客端提交的数额。

JSON 情势验证库

近来有点个验证器可用以分裂的编制程序语言。不过当前最完好和十三分 JSON 格局的验证器是 JSV。

语言 程序库
C WJElement (LGPLv3)
Java json-schema-validator (LGPLv3)
.NET Json.NET (MIT)
ActionScript 3 Frigga (MIT)
Haskell aeson-schema (MIT)
Python Jsonschema
Ruby autoparse (ASL 2.0); ruby-jsonschema (MIT)
PHP php-json-schema (MIT). json-schema (Berkeley)
JavaScript Orderly (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (modified BSD or AFL 2.0); schema.js.

4. 轻易实例

是因为书籍数据有语言和版本新闻,上面包车型地铁事例显示了应用 JSON 存储书籍新闻:

{
    "book": [
        {
            "id":"01",
            "language": "Java",
            "edition": "third",
            "author": "Herbert Schildt"
        },
        {
            "id":"07",
            "language": "C++",
            "edition": "second"
            "author": "E.Balagurusamy"
    }]
}

知道上述顺序之后大家来看别的一个例子,让大家把下部的代码保存为 json.htm:

<html>
<head>
<title>JSON example</title>
<script language="javascript" >

    var object1 = { "language" : "Java", "author"  : "herbert schildt" };
    document.write("<h1>JSON with JavaScript example</h1>");
    document.write("<br>");
    document.write("<h3>Language = " + object1.language+"</h3>");  
    document.write("<h3>Author = " + object1.author+"</h3>");   

    var object2 = { "language" : "C++", "author"  : "E-Balagurusamy" };
    document.write("<br>");
    document.write("<h3>Language = " + object2.language+"</h3>");  
    document.write("<h3>Author = " + object2.author+"</h3>");   

    document.write("<hr />");
    document.write(object2.language + " programming language can be studied " +
    "from book written by " + object2.author);
    document.write("<hr />");

</script>
</head>
<body>
</body>
</html>

参谋并致谢

  1. JSON 快捷指南
    2.JSON 教程

编辑:编程技术 本文来源:JSON数据调换格式

关键词:

  • 上一篇:没有了
  • 下一篇:没有了