溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

javascript對象表示法

發(fā)布時間:2020-05-16 07:50:38 來源:網(wǎng)絡(luò) 閱讀:617 作者:wx5b83bfb2a52d1 欄目:web開發(fā)

JSON: JavaScript Object Notation(JavaScript 對象表示法)
JSON 是存儲和交換文本信息的語法。類似 XML。
JSON 比 XML 更小、更快,更易解析。
。。。。。。。。。。。。。。。。。
什么是 JSON ?
JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)
JSON 是輕量級的文本數(shù)據(jù)交換格式
JSON 獨立于語言:JSON 使用 Javascript語法來描述數(shù)據(jù)對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。 目前非常多的動態(tài)(PHP,JSP,.NET)編程語言都支持JSON。
http:/ /www.iis7.com/b/slj/
JSON 具有自我描述性,更易理解
。。。。。。。。。。。。。。。。。。
JSON - 轉(zhuǎn)換為 JavaScript 對象
JSON 文本格式在語法上與創(chuàng)建 JavaScript 對象的代碼相同。
由于這種相似性,無需解析器,JavaScript 程序能夠使用內(nèi)建的 eval() 函數(shù),用 JSON 數(shù)據(jù)來生成原生的 JavaScript 對象。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON - 簡介
。。。。。。。。。
與 XML 相同之處
JSON 是純文本
JSON 具有"自我描述性"(人類可讀)
JSON 具有層級結(jié)構(gòu)(值中存在值)
JSON 可通過 JavaScript 進行解析
JSON 數(shù)據(jù)可使用 AJAX 進行傳輸
。。。。。。。。。
與 XML 不同之處
沒有結(jié)束標簽
更短
讀寫的速度更快
能夠使用內(nèi)建的 JavaScript eval() 方法進行解析
使用數(shù)組
不使用保留字
。。。。。。。。。
為什么使用 JSON?
對于 AJAX 應(yīng)用程序來說,JSON 比 XML 更快更易使用:
使用 XML
讀取 XML 文檔
使用 XML DOM 來循環(huán)遍歷文檔
讀取值并存儲在變量中
使用 JSON
讀取 JSON 字符串
用 eval() 處理 JSON 字符串
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON 語法
JSON 語法是 JavaScript 語法的子集。
。。。。。。。。。
JSON 語法規(guī)則
JSON 語法是 JavaScript 對象表示語法的子集。
數(shù)據(jù)在名稱/值對中
數(shù)據(jù)由逗號分隔
大括號保存對象
中括號保存數(shù)組
。。。。。。。。。
JSON 名稱/值對
JSON 數(shù)據(jù)的書寫格式是:名稱/值對。
名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值
。。。。。。。。。
JSON 值
JSON 值可以是:
數(shù)字(整數(shù)或浮點數(shù))
字符串(在雙引號中)
邏輯值(true 或 false)
數(shù)組(在中括號中)
對象(在大括號中)
null
。。。。。。。。。
JSON 數(shù)字
JSON 數(shù)字可以是整型或者浮點型
。。。。。。。。。
JSON 對象
JSON 對象在大括號({})中書寫:
對象可以包含多個名稱/值對
。。。。。。。。。
JSON 數(shù)組
JSON 數(shù)組在中括號中書寫:
數(shù)組可包含多個對象
。。。。。。。。。
JSON 布爾值
JSON 布爾值可以是 true 或者 false
。。。。。。。。。
JSON null
JSON 可以設(shè)置 null 值
。。。。。。。。。
JSON 使用 JavaScript 語法
因為 JSON 使用 JavaScript 語法,所以無需額外的軟件就能處理 JavaScript 中的 JSON。
通過 JavaScript,您可以創(chuàng)建一個對象數(shù)組,并進行賦值
。。。。。。。。。
JSON 文件
JSON 文件的文件類型是 ".json"
JSON 文本的 MIME 類型是 "application/json"
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON 對象
JSON 對象使用在大括號({})中書寫。
對象可以包含多個 key/value(鍵/值)對。
key 必須是字符串,value 可以是合法的 JSON 數(shù)據(jù)類型(字符串, 數(shù)字, 對象, 數(shù)組, 布爾值或 null)。
key 和 value 中使用冒號(:)分割。
每個 key/value 對使用逗號(,)分割。
。。。。。。。。。。
訪問對象值
你可以使用點號(.)來訪問對象的值
你也可以使用中括號([])來訪問對象的值
。。。。。。。。。。
循環(huán)對象
你可以使用 for-in 來循環(huán)對象的屬性
在 for-in 循環(huán)對象的屬性時,使用中括號([])來訪問屬性的值
。。。。。。。。。。
嵌套 JSON 對象
JSON 對象中可以包含另外一個 JSON 對象
你可以使用點號(.)或者中括號([])來訪問嵌套的 JSON 對象。
。。。。。。。。。
刪除對象屬性
我們可以使用 delete 關(guān)鍵字來刪除 JSON 對象的屬性
你可以使用中括號([])來刪除 JSON 對象的屬性
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON 數(shù)組
數(shù)組作為 JSON 對象
JSON 數(shù)組在中括號中書寫。
JSON 中數(shù)組值必須是合法的 JSON 數(shù)據(jù)類型(字符串, 數(shù)字, 對象, 數(shù)組, 布爾值或 null)。
也可以是 JavaScript 的表達式,包括函數(shù),日期,及 undefined。
。。。。。。。。。。。
JSON 對象中的數(shù)組
對象屬性的值可以是一個數(shù)組
我們可以使用索引值來訪問數(shù)組
。。。。。。。。。。。
循環(huán)數(shù)組
你可以使用 for-in 來訪問數(shù)組,你也可以使用 for 循環(huán)
。。。。。。。。。。。
嵌套 JSON 對象中的數(shù)組
JSON 對象中數(shù)組可以包含另外一個數(shù)組,或者另外一個 JSON 對象
我們可以使用 for-in 來循環(huán)訪問每個數(shù)組
。。。。。。。。。。。
修改數(shù)組值
你可以使用索引值來修改數(shù)組值
。。。。。。。。。。。
刪除數(shù)組元素
我們可以使用 delete 關(guān)鍵字來刪除數(shù)組元素
。。。。。。。。。。。
json數(shù)據(jù)格式:主要由對象 { } 和數(shù)組 [ ] 組成:
其中對象包括鍵值對(屬性:屬性值){key: value},value 可為 str,num,list,obj。取值使用 objcet.key
{key: value, key2:value2,} 鍵:值用冒號分開,對間用,連接
數(shù)組包含元素:num,str,list,objcet 都可以,利用索引訪問 [index],用 . 連接各個值
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON.parse()
JSON 通常用于與服務(wù)端交換數(shù)據(jù)。
在接收服務(wù)器數(shù)據(jù)時一般是字符串。
我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象。
語法:JSON.parse(text[, reviver])
參數(shù)說明:
text:必需, 一個有效的 JSON 字符串。
reviver:可選,一個轉(zhuǎn)換結(jié)果的函數(shù), 將為對象的每個成員調(diào)用此函數(shù)。
解析前要確保你的數(shù)據(jù)是標準的 JSON 格式,否則會解析出錯。
。。。。。。。。。。
從服務(wù)端接收 JSON 數(shù)據(jù)
我們可以使用 AJAX 從服務(wù)器請求 JSON 數(shù)據(jù),并解析為 JavaScript 對象。
。。。。。。。。。。
從服務(wù)端接收數(shù)組的 JSON 數(shù)據(jù)
如果從服務(wù)端接收的是數(shù)組的 JSON 數(shù)據(jù),則 JSON.parse 會將其轉(zhuǎn)換為 JavaScript 數(shù)組
。。。。。。。。。。
異常
解析數(shù)據(jù)
JSON 不能存儲 Date 對象。
如果你需要存儲 Date 對象,需要將其轉(zhuǎn)換為字符串。
之后再將字符串轉(zhuǎn)換為 Date 對象。
我們可以啟用 JSON.parse 的第二個參數(shù) reviver,一個轉(zhuǎn)換結(jié)果的函數(shù),對象的每個成員調(diào)用此函數(shù)。
。。。。。。。。。。
解析函數(shù)
JSON 不允許包含函數(shù),但你可以將函數(shù)作為字符串存儲,之后再將字符串轉(zhuǎn)換為函數(shù)。
不建議在 JSON 中使用函數(shù)。
。。。。。。。。。。
瀏覽器支持
主流瀏覽器都支持 JSON.parse() 函數(shù):
Firefox 3.5
Internet Explorer 8
Chrome
Opera 10
Safari 4
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON.stringify()
JSON 通常用于與服務(wù)端交換數(shù)據(jù)。
在向服務(wù)器發(fā)送數(shù)據(jù)時一般是字符串。
我們可以使用 JSON.stringify() 方法將 JavaScript 對象轉(zhuǎn)換為字符串。
語法:JSON.stringify(value[, replacer[, space]])
參數(shù)說明:
value:必需, 一個有效的 JSON 對象。
replacer:可選。用于轉(zhuǎn)換結(jié)果的函數(shù)或數(shù)組。
如果 replacer 為函數(shù),則 JSON.stringify 將調(diào)用該函數(shù),并傳入每個成員的鍵和值。使用返回值而不是原始值。如果此函數(shù)返回 undefined,則排除成員。根對象的鍵是一個空字符串:""。
如果 replacer 是一個數(shù)組,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員。成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。當 value 參數(shù)也為數(shù)組時,將忽略 replacer 數(shù)組。
space:
可選,文本添加縮進、空格和換行符,如果 space 是一個數(shù)字,則返回值文本在每個級別縮進指定數(shù)目的空格,如果 space 大于 10,則文本縮進 10 個空格。space 有可以使用非數(shù)字,如:\t。
。。。。。。。。。。。。。。
JavaScript 數(shù)組轉(zhuǎn)換
我們也可以將 JavaScript 數(shù)組轉(zhuǎn)換為 JSON 字符串
。。。。。。。。。。。。。。
異常
解析數(shù)據(jù)
JSON 不能存儲 Date 對象。
JSON.stringify() 會將所有日期轉(zhuǎn)換為字符串。
。。。。。。。。。。。。。。
解析函數(shù)
JSON 不允許包含函數(shù),JSON.stringify() 會刪除 JavaScript 對象的函數(shù),包括 key 和 value。
我們可以在執(zhí)行 JSON.stringify() 函數(shù)前將函數(shù)轉(zhuǎn)換為字符串來避免以上問題的發(fā)生
不建議在 JSON 中使用函數(shù)。
。。。。。。。。。。。。。。。
瀏覽器支持
主流瀏覽器都支持 JSON.stringify() 函數(shù):
Firefox 3.5
Internet Explorer 8
Chrome
Opera 10
Safari 4
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JSON 使用
把 JSON 文本轉(zhuǎn)換為 JavaScript 對象
JSON 最常見的用法之一,是從 web 服務(wù)器上讀取 JSON 數(shù)據(jù)(作為文件或作為 HttpRequest),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象,然后在網(wǎng)頁中使用該數(shù)據(jù)。
eval() 函數(shù)使用的是 JavaScript 編譯器,可解析 JSON 文本,然后生成 JavaScript 對象。必須把文本包圍在括號中,這樣才能避免語法錯誤:var obj = eval ("(" + txt + ")");
。。。。。。。。。。。。。。。。。。。。
JSON 解析器
lamp eval() 函數(shù)可編譯并執(zhí)行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。
使用 JSON 解析器將 JSON 轉(zhuǎn)換為 JavaScript 對象是更安全的做法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。
在瀏覽器中,這提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
較新的瀏覽器和最新的 ECMAScript (JavaScript) 標準中均包含了原生的對 JSON 的支持。
Web 瀏覽器支持 Web 軟件支持
Firefox (Mozilla) 3.5 jQuery
Internet Explorer 8 Yahoo UI
Chrome Prototype
Opera 10 Dojo
Safari 4 ECMAScript 1.5

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI