使用JSON須知總結
這次帶給大家使用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腳本,他們可以用< script>標籤連結並使用。
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中文網其它相關文章!
推薦閱讀:
#以上是使用JSON須知總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux下system()函數的總結在Linux系統中,system()函數是一個非常常用的函數,它可以用來執行命令列指令。本文將對system()函數進行詳細的介紹,並提供一些特定的程式碼範例。一、system()函數的基本用法system()函數的聲明如下:intsystem(constchar*command);其中,command參數是一個字符

PHP數組轉JSON的效能最佳化方法包括:使用JSON擴充和json_encode()函數;新增JSON_UNESCAPED_UNICODE選項以避免字元轉義;使用緩衝區提高循環編碼效能;快取JSON編碼結果;考慮使用第三方JSON編碼庫。

MySQL5.7和MySQL8.0是兩個不同的MySQL資料庫版本,它們之間有以下一些主要差異:效能改進:MySQL8.0相對於MySQL5.7有一些效能改進。其中包括更好的查詢優化器、更有效率的查詢執行計劃產生、更好的索引演算法和平行查詢等。這些改進可以提高查詢效能和整體系統效能。 JSON支援:MySQL8.0引入了對JSON資料類型的原生支持,包括JSON資料的儲存、查詢和索引。這使得在MySQL中處理和操作JSON資料變得更加方便和有效率。事務特性:MySQL8.0引進了一些新的事務特性,如原子

Jackson庫中的註解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略屬性@JsonProperty:指定名稱@JsonGetter:使用獲取方法@JsonSetter:使用設定方法反序列化:@JsonIgnoreProperties:忽略屬性@ JsonProperty:指定名稱@JsonCreator:使用建構子@JsonDeserialize:自訂邏輯

快速入門:Pandas讀取JSON檔案的方法,需要具體程式碼範例引言:在資料分析和資料科學領域,Pandas是一個重要的Python庫之一。它提供了豐富的功能和靈活的資料結構,能夠方便地對各種資料進行處理和分析。在實際應用中,我們經常會遇到需要讀取JSON檔案的情況。本文將介紹如何使用Pandas來讀取JSON文件,並附上特定的程式碼範例。一、Pandas的安裝

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

深入了解PHP:JSONUnicode轉中文的實作方法在開發中,我們經常會遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場景下會為我們帶來一些問題,特別是當需要將Unicode編碼轉換為中文字元時。在PHP中,有一些方法可以幫助我們實現這個轉換過程,以下將介紹常用的方法,並提供具體的程式碼範例。首先,讓我們先來了解一下JSON中Un

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務
