JSON 語法規則
在JSON 介紹一章節對JSON在總體上進行了簡單的介紹。
JSON是一種資料傳輸格式,也就是對字串在語法上的約定。
它是JavaScript的子集,所以任何JSON格式資料都是合法的JavaScript表示式。
上面關於子集的表述在之前並不完全正確,有些許個例,但是此問題當前已經被修復。
一.準備工作:
JavaScript中,一切皆為物件(可能不是太精確,但是大致可以如此認為)。
支援的型別都可以用JSON表示,比如字串、數值、null、物件和陣列。
但是也有不支援的型別,比如undefined、function函式和Symbol,具體參閱JSON.stringify()一章節。
二.JSON語法:
應用中,最為常見的JSON是物件與陣列或者它們之間的巢狀格式的。
1.鍵值對結構:
書寫規則如下:
(1).每組資料是由鍵值對構成。
(2).鍵必須用雙引號包裹。
(3).鍵與值之間用冒號分割。
(4).值如果是字串,必須用雙引號包裹。
(4).鍵值對之間用逗號分割。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼{ "webName":"螞蟻部落", "url":"softwhy.com", "age":2 }
上面是合法的JSON字串,再來看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼{ 'webName':"螞蟻部落", "url":undefined, "age":5 }
上述JSON格式字串是錯誤的,分析如下:
(1).雖然在JavaScript中單雙引號都是可以的,但是在JSON中只能使用雙引號。
(2).undefined在物件直接量格式中是不被支援的,會被忽略,不被支援的含有函式和Symbol。
看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let ant={ 'webName':"螞蟻部落", "url":undefined, "age":5 } console.log(JSON.stringify(ant));
程式碼執行效果截圖如下:
可以看到單引號變成了雙引號,undefined直接被忽略。
2.陣列結構:
陣列結構資料和上面同理,只不過陣列資料要寫在方括號中。首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼["螞蟻部落",5,"青島市南區"]
上述就是一個陣列結構的JSON字串,就是陣列的字串形式。
我們知道陣列中可以巢狀資料型別,比如物件直接量,下面是將其轉換為JSON資料後的結構:
[JavaScript] 純文字檢視 複製程式碼{ "web": [ { "webName":"螞蟻部落" , "url":"softwhy.com" }, { "webName":"網易" , "url":"163.com" } ] }
操作原理是一樣的,鍵需要用雙引號包裹,不支援的資料會被忽略。
當然還有許多細節,本文不做介紹,具體參閱JSON.stringify()一章節。
三.關聯方法:
通過JSON.stringify() 方法可以將引數轉換為JSON資料,也可以通過JSON.parse()方法將JSON資料還原。
JSON是ES5新增物件,僅有上述兩個方法,專注於對JSON資料的處理,恰如其名。
(1).JSON.stringify()參閱JSON.stringify()一章節。
(2).JSON.parse()參閱JSON.parse()一章節。
相關文章
- JSON語法規則JSON
- CSS @page語法規則CSS
- XML 語法規則概述XML
- jsx基本語法規則JS
- Eslint Standard Style語法規則EsLint
- Perl語法的基本規則
- HTML基本語法和語義寫法規則與例項HTML
- CSS-@規則(At-rules)常用語法使用總結CSS
- TDengine3.0 流式計算引擎語法規則介紹
- 系統學習 TypeScript(二)——開發流程和語法規則TypeScript
- microsoft/RulesEngine:基於 Json的C#規則引擎ROSJSONC#
- 第2-4-5章 規則引擎Drools高階語法-業務規則管理系統-元件化-中臺元件化
- Shell語法規範
- 正則手記——語法篇
- JavaScript語法中將json轉成陣列JavaScriptJSON陣列
- 語義化版本 2.0.0 - 版本控制規則
- 從零開始React:一檔 React環境搭建,語法規則,基礎使用React
- 時序資料庫 TDengine SQL 查詢語法規則彙總,官方教程奉上!資料庫SQL
- 正規表示式-語法大全
- 從入門到放棄:Python+selenium unittest測試框架及基本語法規則Python框架
- nginx配置location總結及rewrite規則寫法Nginx
- SQL語句規範的寫法SQL
- 正規表示式的基本語法
- 規則
- 自然語言語法符合熱力學自由能原則
- 谷歌機器學習規則要點簡析:43條黃金法則谷歌機器學習
- 萬智牌規則設計:法術與瞬間
- java 正規表示式語法學習Java
- 正則匹配規則2
- 理解C語言宣告的優先順序規則C語言
- Python語言中合法變數命名有什麼規則?Python變數
- JsonPath:針對json的強大的規則解析與引數查詢工具JSON
- ESlint規則EsLint
- url規則
- makefile規則
- 四種常用的命名規則:帕斯卡命名法、駝峰命名法、下劃線命名法、匈牙利命名法
- canvas非零繞組規則與奇偶規則Canvas
- js正規表示式基本語法學習JS