最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

更加全面的認識json

2023-04-07 00:10 作者:小劉Java之路  | 我要投稿

json

大家好,我是小劉!好久沒寫技術文章了,最近都是在好好生活,好好的學習,分享我知道的一些json 相關的,我自己在總結歸納,讓我們深入理解json,不僅是知道是什么,怎么用,還可以知道他的背景、用法、原理 ?要知道:
知其然而不知其所以然

作為Java后端開發(fā)者json再熟悉不過了
但是你真的知道json嘛?

什么是json

百度百科:

簡稱:JSON是JavaScript Object Notation的簡稱,中文含義為“JavaScript 對象表示法”,它是一種數據交換的文本格式,而不是一種編程語言。

JSON 是一種輕量級的數據交換格式,它基于 ECMAScript (w3c制定的js規(guī)范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。

JSON的特點

JSON 主要具有以下特性,這些特性使它成為理想的數據交換語言:

JSON 是輕量級的文本數據交換格式

JSON 具有自我描述性,更易理解

JSON 采用完全獨立于語言的文本格式:JSON 使用 JavaScript 語法來描述數據對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。目前常見的動態(tài)編程語言(PHP,JSP,.NET)都支持JSON。

JSON 是存儲和交換文本信息的一種語法,它與XML具有相同的特性,是一種數據存儲格式,卻比 XML 更小、更快、 更易于人編寫和閱讀、更易于生成和解析。

類似于 XML 的特性:

JSON 是純文本

JSON 具有“自我描述性”(人類可讀)

JSON 具有層級結構(值中存在值)

JSON 可通過 JavaScript 進行解析

JSON 數據可使用 AJAX 進行傳輸

相比 XML 的不同之處:

沒有結束標簽

更短

讀寫的速度更快

能夠使用內建的 JavaScript eval() 方法進行解析

使用數組

不使用保留字

JSON語法

在 JavaScript 語言中,一切皆對象。任何支持的類型,如字符串、數值、對象、數組等,都可以通過 JSON 來表示。

JSON 語法是 JavaScript 對象表示法的子集:

數據在鍵/值對中,鍵/值對可以嵌套

數據由逗號分隔

花括號保存對象,對象可以包含多個鍵/值對

方括號保存數組,數組可以包含多個對象

JSON不是JavaScript語句,對象的末尾沒有分號,對象和數組的最后一個成員后面,也不能加逗號。

JSON的類型

1.1 JSON 鍵/值對

JSON鍵/值對由鍵和值組成,鍵必須是字符串,值可以是字符串(string)、數值(number) 、對象(object)、數組(array)、true、false、 null。如圖所示:

在定義JSON鍵/值時,先是鍵名,后面寫一個冒號,然后是值。如:"github": "https://github.com/leiqikui"
這就等價于這條 JavaScript 語句:
github = "https://github.com/leiqikui"

1.2 JSON 字符串

JSON 的字符串(string)跟C或者Java的字符串非常相似,是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。如圖所示:

由于JSON 字符串不能使用單引號,因此一個字符(character)就是一個單獨的字符串(character string)。

1.3 JSON 數值

JSON 數值(number)與C或者Java的數值非常相似,支持整型、浮點型,浮點型也可以用指數表示。如圖所示:

JSON不支持八進制和十六進制, 數值必須以十進制表示,且不能使用NaN和Infinity。以下是合法的JSON數值:
{ "age": 30 }

1.4 JSON 對象

JSON 對象是一個無序的key/value對的集合。一個對象以 '{' 開始,以 '}' 結束;每個key 和 value 中使用冒號分隔;每個 key/value 對之間使用逗號分隔。如圖所示:

JSON 對象語法:

對象在大括號({})中書寫。

對象可以包含多個 key/value(鍵/值)對。

key是字符串,必須放在雙引號里面。value 可以是合法的 JSON 數據類型(字符串, 數值, 對象, 數組, 布爾值或 null)。

一個 key/value 對內部,key 和 value使用冒號(:)分隔。

key/value 對之間,使用逗號(,)分隔。

對象可以嵌套

下面就是一個合法的JSON 對象:


1.5 JSON 數組

數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。如圖所示:

JSON 數組:

數組在中括號中書寫。

數組的值必須是合法的 JSON 數據類型(字符串, 數值, 對象, 數組, 布爾值或 null),也可以是 JavaScript 的表達式,包括函數、日期、undefined。

對象的屬性值也可以是一個JSON數組。如,以下對象的 sites 屬性值是一個包含三個元素的數組:



JSON數組的元素也可以是對象。如,以下對象 "employees" 是包含三個對象的數組,每個對象代表一條關于某人(有姓和名)的記錄:


1.6 JSON 布爾值

JSON 布爾值可以是 true 或者 false。如:

{ "flag":true }

1.7 JSON null

JSON 可以設置 null 值。如:

{ "zhihu":null }

1.8 JSON 文件

JSON 文件的文件類型是 ".json"

JSON 文本的 MIME 類型是 "application/json"

Java解析(讀取)json數據{} [{}]

1.JSON介紹

JSON比XML簡單,主要體現在傳輸相同信息的情況下,文件的大小不同。JSON只用于傳輸信息,XML還可以用于配置文件的使用。簡單來說
JSON就是一種數據的組織形式,可以說是XML的簡化版本,只用于數據傳輸。

2.JSON中的數組和對象

2.1數組(JSONArray)

數組用一對[],表示存放的是一般的數組數據。
如:["11","22","33"],表示這是一個JSONArray數組,里面有3個數據:11,22,33。當然可以是復雜的數據,就是所謂的嵌套定義吧。

2.對象(JSONObject)

對象用一對{},來表示其中JSON通用的鍵-值對。
如:{"sex1":"female","name0":"zhangsan"},表示的是一個JSON對象,里面有兩組數據(鍵值對),sex1=female,name0=zhangsan。當然這里鍵對應的數據值,可以是復雜的JSON對象或者數組。

案例demo如下:

基本的JSONArray與JSONObject操作



由java自帶的數據結構轉換為JSON文本



讀取JSON文本

JSONArray必須用下標讀取內部數據。
JSONObject必須用”鍵“讀取對應的”值“。


JSONArray和JSONOject的用法

JSONArray用法

1??解析字符串
?

??
2??存值取值
?(1)?存值
???


????(2)?取值
?

?
3???格式:?
?本質是數組,?必須是數組格式,???用??[?]?包裹數據?
?格式:???[{key:value},{key:value}... ]
?????????["str1","str2","str3",...]


JSONObject的用法

1?解析字符串


2??存值取值
???(1)?存值

???(2)?取值
????


3??格式:
?本質是對象,?用?{}?表示
?格式:??{key:value}
?

案例demo如下:



???????
只要格式正確,?空字符串和null都是可以解析
答案:??打印第6條因格式不對,?會報錯,?所以注釋了
???????



最后

總結:

  1. JSON是JavaScript Object Notation的簡稱,中文含義為“JavaScript 對象表示法”,它是一種數據交換的文本格式,而不是一種編程語言。

2.json 的特點:

1.JSON 是輕量級的文本數據交換格式

2.JSON 具有自我描述性,更易理解

3.JSON 采用完全獨立于語言的文本格式、JSON 解析器和 JSON 庫支持許多不同的編程語言。

4.比 XML 更小、更快、 更易于人編寫和閱讀、更易于生成和解析。

5.JSON 是純文本、易讀、層級結構鮮明、JSON 可通過 JavaScript 進行解析、JSON 數據可使用 AJAX 進行傳輸

3.常用的json:比如json字符串、json對象、json數組

4.json的解析:

{} 用JSONObject

[] 用JSONArray





最后,歡迎學編程的朋友們加入我的 《java學習群》,我會 1 對 1 解決你的問題(盡我所能),群里的人也會對解答疑惑。


掃碼拉群,學習打卡,流經驗


更加全面的認識json的評論 (共 條)

分享到微博請遵守國家法律
玉环县| 宣化县| 阿拉善盟| 伊通| 财经| 抚宁县| 连南| 营山县| 永顺县| 建阳市| 保定市| 阿鲁科尔沁旗| 湾仔区| 曲松县| 上栗县| 阿鲁科尔沁旗| 仁怀市| 新密市| 阿城市| 天柱县| 松阳县| 永福县| 大同市| 英山县| 元朗区| 铜鼓县| 浑源县| 大城县| 宜城市| 临夏县| 文成县| 紫金县| 莱阳市| 法库县| 游戏| 库尔勒市| 瑞安市| 汕尾市| 张掖市| 秦皇岛市| 玉龙|