搜尋
首頁web前端js教程使用JSON須知總結

使用JSON須知總結

Apr 24, 2018 pm 05:18 PM
javascriptjson總結

這次帶給大家使用JSON須知總結,使用JSON的注意事項有哪些,以下就是實戰案例,一起來看一下。

名詞

可移植性
平台和系統間傳輸資訊的相容性。
 
JSON
JavaScriptObjectNotation  物件表示法。
 
資料交換格式
用於不同平台或系統間交換資料的文字。
 
字面量
字面意思與其想表達的意思完全一致的值。
 
變數
透過形如X的識別碼來表示的,可以修改的一類值。
 
最大移植性
透過確保資料本身對於平台和系統的兼容性來提供超越資料格式本身的可攜性。
 
名稱-值對
指擁有名稱和對應值的屬性和特徵(也叫鍵值對)。
 
語法驗證
json格式的驗證。
 
一致性驗證
專注於獨特的資料結構驗證。
 
JSON中的字串類型
一個字串值,如“你是個好人”,使用雙引號包裹。
 
概念

JSON是一種資料交換格式。
 
JSON獨立於程式語言。
 
JSON基於JavaScript物件的字面量表示法(重點在於表示法)。
 
JSON表達資料的方式對通用的程式設計概念都很友善。
 
JSON基於JavaScript物件字面量表示屬性的語法,但不包含與JavaScript物件字面量的函數相關部分。
 
JSON的名稱-值對中,名稱總是被雙引號包裹。
 
JSON的名稱-值對中,值可以是字串,數字,布林值,null,物件式陣列。
 
JSON中的名稱-值對清單總是被花括號包裹。
 
JSON中多個名稱值對使用逗號分隔。
 
JSON檔案使用.json副檔名。
 
JSON的媒體類型是application/json。
 
JSON中的布林類型的值只有true和false,所有字母都必須小寫。
 
JSON中的null值的所有字母必須小寫,表示空值。
 
JSON中的數字類型,一個數字值,如66,可以是正整數,負整數,小數,指數。
 
物件和陣列很關鍵的差異就是,物件是名稱-值對構成的列表或集合,陣列是值構成的列表和集合。
 
物件和陣列另一個關鍵差異是,陣列中所有值應具有相同的資料類型。
 
術語
JSON中的陣列
陣列是值的集合或列表,每個值都可以是字串,數字,布林值,物件或陣列中的任何一種。數組必須被[]包裹,且值與值之間用逗號分隔。
 
JSON中的物件類型
物件類型是使用逗號分隔的名稱-值對構成的集合,並使用{}包裹。
 
JSON Schema
資料交換中的一種虛擬合約。
 
服務端(web開發中的)

當網頁式資源被要求時,在伺服器上執行的一系列操作。伺服器為網路瀏覽器提供其處理和載入的回應。
 
客戶端(web開發中的)
當瀏覽器請求的介面載入完成時執行的一系列操作,通常是指HTML,CSS和JavaScript。
 
概念
JSON驗證器負責驗證語法錯誤,JSON Schema負責提供一致性驗證。
 
JSONSchema是負責資料接收第一道防線,也是資料傳送方節省時間,確保資料正確的好工具。
 
JSONSchema可以解決下列一致性驗證的問題
  1.值的資料型態是否正確?  可以具體規定一個值是數字、字串等型別。
  2.是否包含所需的資料?  可以具體規定哪些資料是需要的,哪些不需要的。
  3.值的形式是不是我需要的?  可以指定範圍,最小值最大值。
 
JSON本身不構成什麼威脅,它只是文字。
 
在定位JSON安全問題時,應該記住以下3件事.
  1.不要使用頂級數組,頂級數組是合法的JavaScript腳本,他們可以用標籤連結並使用。
  2.對於不想公開的資源,僅允許使用HTTPPost方法請求,而不是Get方法,get方法可以透過url請求,甚至放在script標籤中。
  3.使用JSON.parser()來取代eval(),eval()函數會將傳入的字串編譯並執行,這會讓你的程式碼易被攻擊,應僅使用JSON.parser()來解析json資料。
 
安全漏洞通常由於開發人員沒有考慮「駭客如何利用這一點」這個問題所導致的。
 
JavaScript的XMLHTTPRequest與WEBAPI之間的關係是客戶端與服務端的關係。
 
XMLHTTPRequest並不僅限於XML,還可以用它來請求JSON資源
 
術語
跨站請求偽造(CSRF)
指利用網站對使用者瀏覽器的信任進行攻擊
 
頂層JSON數組存在於JSON名稱-值對之外的位於文件最頂層的JSON數組。
 
注入攻擊
依賴將資料注入到web應用程式以方便惡意資料執行或編譯的攻擊。
 
JSON跨站腳本攻擊
透過截取或將網站中所使用的第三方程式碼更換為惡意腳本,來對網站進行的一種注入攻擊。
 
webApi
透過Http與服務互動的一系列指示與標準。
 
XMLHTTPRequest
一種JavaScript對象,無需重新整理頁面即可從一個URL取得數據,常用與AJAX程式設計。
 
超文本傳輸協定(HTTP)
萬維網所使用的交換資料的基本協定
 
序列化
將物件轉換為文字的動作
 
#反序列化
將文字轉化為物件的操作。
 
概念
網站為人服務,webAPI為程式碼服務,他們都使用Http協定。
 
同源策略使得JavaScript和JSON資源進行客戶端-服務端溝通時出現了一些困難。
 
客戶端跨域的XMLHTTPRequest需要服務端的支援來確保JSON資源請求成功。
 
jQuery是一款提供了JSON請求和解析功能的能夠縮短開發時間的抽象工具,同時它也解決了跨瀏覽器相容問題。
 
AngularJS MVC的概念
  JSON是模型||資料模​​型
  HTML是視圖,且提供了與模型進行綁定的語法
  控制器是AngularJS控制器語法來定義和操作與模型和視圖間的互動的JavaScript檔案。
 
AngularJS使得JavaScript物件和JSON在MVC架構中大放異彩。
 
關係型資料庫中,常常會存在表格列行以及他們之間的關係,其中會用到主鍵和外鍵。
 
NoSQL資料庫有許多種,它們有與傳統的關係型模型不同的資料儲存與利用方法。
 
CouchDB資料庫重要概念
  1.它是一種以文件為導向的NoSQL資料庫
  2.它儲存和管理JSON文件
  3.它會在儲存和擷取資料的同時維護好資料結構
  4.它會使用基於HTTP的API來取得作為JSON文檔資源的資料
  5.它使用JavaScript作為查詢語言,並且透過視圖的map和reduce方法來跨API取得資料。
 
在服務端,可以將JSON反序列化為物件而運用在程式邏輯中,也可以將物件序列化成JSON格式。
 
JSON同時被服務端和客戶端較好的支持,使得它在web領域從諸多交換資料格式中脫穎而出。
 
術語
同源策略
出於安全考慮,瀏覽器只會請求相同網域的腳本。
 
跨域資源共享CORS
透過設定回應頭,使得跨於請求可以成功。
 
JSON-p
使用script標籤,繞過同源策略限制,從不同網域的伺服器請求JSON。
 
抽象化
一種處理複雜系統的技術,主要想法是將一個大問題轉換為多個小問題
 
框架
一種能夠節省時間,已讓我們更專注於建構功能的抽象化工具。
 
Jquery.parserJSON()
一個jquery的函數,它不僅呼叫JSON.parser()函數,還會相容於那些不支援JSON.parser()函數的老式瀏覽器,且透過驗證字符來評估字串,從而避免了可能的安全性問題。
 
jquery.getJSON()
jquery.ajax()函數的簡寫形式,其中包含了將json解析為JavaScript物件的函數。
 
單頁web應用
與傳統的多頁方式不同,著力於提供更無縫的應用體驗的網頁。
 
模型-視圖-控制器(MVC)
一種應用架構模式,它將應用分為3部分:模型(資料)、視圖(展示)、以及控制器(更新模型和視圖)
 
AngularJS
一款使用JavaScript物件作為資料模型的JavaScriptMVC架構。
 
關係型資料庫
一種將儲存的資料用可辨識的關係進行結構化儲存的資料庫。
 
NoSQL資料庫
一種不透過儲存資料間關係來儲存的資料庫。
 
CouchDB
一種以文件為導向的NoSQL資料庫儲存類型,使用JSON文件的形式來儲存資料。
 
ASP.NET
微軟開發的服務端Web架構
 
PHP
用於建立動態web頁面的服務端腳本語言
 
Ruby on Rails
使用Ruby編寫的服務端Web應用程式框架
 
Node.js
基於GoogleV8引擎的服務端JavaScript。
 
java
一種物件導向程式語言。
 
JSON也會作為靜止的設定檔
 
在考慮用什麼資料格式時,資料的形式和交換資料的系統都應該被考慮到。 ! ! ! JSON不總是最佳選擇。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

jquery中ajax執行順序調整

#Ajax與$.ajax實例詳解

#

以上是使用JSON須知總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python vs. JavaScript:性能和效率注意事項Python vs. JavaScript:性能和效率注意事項Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript的起源:探索其實施語言JavaScript的起源:探索其實施語言Apr 29, 2025 am 12:51 AM

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

幕後:什麼語言能力JavaScript?幕後:什麼語言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來:趨勢和預測Python和JavaScript的未來:趨勢和預測Apr 27, 2025 am 12:21 AM

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python vs. JavaScript:開發環境和工具Python vs. JavaScript:開發環境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!