溫馨提示×

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

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

JSON文件是什么意思

發(fā)布時(shí)間:2022-02-23 11:53:37 來源:億速云 閱讀:1003 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了JSON文件是什么意思,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

JSON 代表 JavaScript 對(duì)象表示法。JSON 文件以 .json 為擴(kuò)展名,其中的數(shù)據(jù)以鍵:值對(duì)表示,就像傳統(tǒng)的 JavaScript 對(duì)象一樣。不過,JSON 和對(duì)象并不完全相同。核心區(qū)別在于JSON中的key必須是雙引號(hào),除number和null之外的值也必須是雙引號(hào)。如果您在編程過程中使用過 API,您可能知道什么是 JSON,因?yàn)楝F(xiàn)在很多 API 數(shù)據(jù)都采用 JSON 格式。

基本 JSON 語(yǔ)法

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
  "key4": 7,
  "key5": null,
  "favFriends": ["Kolade", "Nithya", "Dammy", "Jack"],
  "favPlayers": {"one": "Kante", "two": "Hazard", "three": "Didier"}
}

接受的 JSON 數(shù)據(jù)類型

JSON 可以定義在一個(gè)對(duì)象或一個(gè)數(shù)組中,它可能包含多個(gè)對(duì)象。因此,對(duì)象和數(shù)組是 JSON 中自動(dòng)可接受的數(shù)據(jù)類型。它支持的其他數(shù)據(jù)類型是布爾值、空值和字符串。

JSON 不支持 undefined、function 和 date 等數(shù)據(jù)類型。

此外,JSON 還可以擴(kuò)展為其他數(shù)據(jù)格式,這些格式可能接受原始 JSON 不接受的額外數(shù)據(jù)類型。

此類擴(kuò)展的示例是 GeoJSON 和 BSON。GeoJSON 用于表示地理數(shù)據(jù),而流行的數(shù)據(jù)庫(kù)服務(wù)提供商 MongoDB 使用 BSON。

例如,BSON 接受正則表達(dá)式、日期和時(shí)間戳作為數(shù)據(jù)類型,而 JSON 不接受。

JSON 語(yǔ)法規(guī)則

JSON 在支持的數(shù)據(jù)類型方面非常嚴(yán)格。如果您在代碼編輯器中安裝了 linter,它會(huì)在您輸入不受支持的數(shù)據(jù)類型或違反語(yǔ)法規(guī)則時(shí)立即通知您存在錯(cuò)誤。

要知道的 JSON 語(yǔ)法規(guī)則:

  • 如果將文件表示為對(duì)象,則文件中的所有數(shù)據(jù)必須用大括號(hào)括起來,如果它是數(shù)組,則必須用方括號(hào)括起來。

  • 不允許單引號(hào)

  • 每個(gè) JSON 中的鍵必須是唯一的,并且必須用雙引號(hào)引起來

  • 數(shù)字不能用雙引號(hào)括起來,否則它們將被視為字符串。

  • 空數(shù)據(jù)類型不能用雙引號(hào)括起來。

  • 布爾值只能為真或假。

  • 除最后一項(xiàng)外,每個(gè)鍵值對(duì)都必須以逗號(hào)結(jié)尾

  • 數(shù)組中的特定對(duì)象也必須以逗號(hào)結(jié)尾。

JSON 數(shù)據(jù)如何發(fā)送到客戶端(瀏覽器)

JSON 是出于將數(shù)據(jù)從服務(wù)器(例如數(shù)據(jù)庫(kù))實(shí)時(shí)發(fā)送到客戶端(瀏覽器)的需要而創(chuàng)建的。

但是 JSON 數(shù)據(jù)不能以其原始的鍵值對(duì)形式傳輸?shù)綖g覽器,因此編程語(yǔ)言有操作 JSON 數(shù)據(jù)的方法。

例如,在 JavaScript 中,JSON.parse()將 JSON 數(shù)據(jù)轉(zhuǎn)換為對(duì)象,JSON.stringify()并將對(duì)象的鍵值對(duì)轉(zhuǎn)換為 JSON 數(shù)據(jù)。

Python 提供了諸如json.loads()將現(xiàn)有字符串轉(zhuǎn)換為 JSON 以及json.dumps()將對(duì)象轉(zhuǎn)換為 JSON 字符串等方法。

您可以使用 JavaScript 提供的兩種方法將基本 JSON 語(yǔ)法中的數(shù)據(jù)發(fā)送到瀏覽器。

如何使用 JavaScript 將 JSON 數(shù)據(jù)發(fā)送到客戶端(瀏覽器)

該JSON.stringify()方法返回一個(gè)與 JavaScript 對(duì)象完全相同的 JSON 字符串。您可以將它與 DOM 操作方法結(jié)合使用以在瀏覽器中顯示 JSON 數(shù)據(jù),就像我在下面的代碼片段中所做的那樣:

<h3>Here is the Data from the JSON:</h3> 
<div id="json"></div>
 const JSONData = {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3",
    "key4": 7,
    "key5": null,
    "favFriends": ["Kolade", "Nithya", "Dammy", "Jack"],
    "favPlayers": {"one": "Kante", "two": "Hazard", "three": "Didier"}
}

const JSONString = JSON.stringify(JSONData)
const JSONDisplay = document.querySelector("#json")
JSONDisplay.innerHTML = JSONString

在 JavaScript 代碼中,我們將 JSON 數(shù)據(jù)聲明為帶有標(biāo)識(shí)符 (name) 的對(duì)象字面量JSONData。我們使用 JavaScript 的JSON.stringify()方法將其轉(zhuǎn)換為字符串,并使用 DOM 的查詢選擇器方法獲取 HTML 中的空 div。這使得使用innerHTMLDOM 操作方法填充其中的 JSON 數(shù)據(jù)成為可能。

JSON文件是什么意思

我們可以使用該JSON.parse()方法將 JSON 數(shù)據(jù)轉(zhuǎn)換為對(duì)象——它正在運(yùn)行:

<h3>Here is the Data from the JSON:</h3>
<div id="json"></div>
const JSONData =
     '{"name": "Kolade", "favFriends": ["Kolade", "Nithya", "Rocco", "Jack"], "from": "Africa"}';

   try {
     const JSONString = JSON.parse(JSONData);
     const JSONDisplay = document.querySelector("#json");
     JSONDisplay.innerHTML = JSONString.name + ", [" + JSONString.favFriends + "], " + JSONString.from;
   } catch (error) {
     console.log("Cannot parse the JSON Data");
   }

瀏覽器中的結(jié)果輸出如下所示:

JSON文件是什么意思

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“JSON文件是什么意思”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

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

AI