日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

什么是 JSON ?

發(fā)布時間:2025/4/9 javascript 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 JSON ? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是 JSON ?

  • JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)
  • JSON 是輕量級的文本數(shù)據(jù)交換格式
  • JSON 獨立于語言?
  • JSON 具有自我描述性,更易理解

* JSON 使用 JavaScript 語法來描述數(shù)據(jù)對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。

JSON - 轉(zhuǎn)換為 JavaScript 對象

JSON 文本格式在語法上與創(chuàng)建 JavaScript 對象的代碼相同。

由于這種相似性,無需解析器,JavaScript 程序能夠使用內(nèi)建的 eval() 函數(shù),用 JSON 數(shù)據(jù)來生成原生的 JavaScript 對象。

<html> <body> <h2>在 JavaScript 中創(chuàng)建 JSON 對象</h2><p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p><script type="text/javascript"> var JSONObject= { "name":"Bill Gates", "street":"Fifth Avenue New York 666", "age":56, "phone":"555 1234567"}; document.getElementById("jname").innerHTML=JSONObject.name document.getElementById("jage").innerHTML=JSONObject.age document.getElementById("jstreet").innerHTML=JSONObject.street document.getElementById("jphone").innerHTML=JSONObject.phone </script></body> </html>

結(jié)果:

在 JavaScript 中創(chuàng)建 JSON 對象

Name: Bill Gates
Age: 56
Address: Fifth Avenue New York 666
Phone: 555 1234567

類似 XML

  • JSON 是純文本
  • JSON 具有“自我描述性”(人類可讀)
  • JSON 具有層級結(jié)構(gòu)(值中存在值)
  • JSON 可通過 JavaScript 進行解析
  • JSON 數(shù)據(jù)可使用 AJAX 進行傳輸

相比 XML 的不同之處

  • 沒有結(jié)束標(biāo)簽
  • 更短
  • 讀寫的速度更快
  • 能夠使用內(nèi)建的 JavaScript eval() 方法進行解析
  • 使用數(shù)組
  • 不使用保留字
?

JSON 語法規(guī)則

JSON 語法是 JavaScript 對象表示法語法的子集。

  • 數(shù)據(jù)在名稱/值對中
  • 數(shù)據(jù)由逗號分隔
  • 花括號保存對象
  • 方括號保存數(shù)組

JSON 名稱/值對

JSON 數(shù)據(jù)的書寫格式是:名稱/值對。

名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值:

"firstName" : "John"

這很容易理解,等價于這條 JavaScript 語句:

firstName = "John"

JSON 值

JSON 值可以是:

  • 數(shù)字(整數(shù)或浮點數(shù))
  • 字符串(在雙引號中)
  • 邏輯值(true 或 false)
  • 數(shù)組(在方括號中)
  • 對象(在花括號中)
  • null

JSON 對象

JSON 對象在花括號中書寫:

對象可以包含多個名稱/值對:

{ "firstName":"John" , "lastName":"Doe" }

這一點也容易理解,與這條 JavaScript 語句等價:

firstName = "John" lastName = "Doe"

JSON 數(shù)組

JSON 數(shù)組在方括號中書寫:

數(shù)組可包含多個對象:

{ "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }

在上面的例子中,對象 "employees" 是包含三個對象的數(shù)組。每個對象代表一條關(guān)于某人(有姓和名)的記錄。

JSON 使用 JavaScript 語法

因為 JSON 使用 JavaScript 語法,所以無需額外的軟件就能處理 JavaScript 中的 JSON。

通過 JavaScript,您可以創(chuàng)建一個對象數(shù)組,并像這樣進行賦值:

例子

var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ];

可以像這樣訪問 JavaScript 對象數(shù)組中的第一項:

employees[0].lastName;

返回的內(nèi)容是:

Gates

可以像這樣修改數(shù)據(jù):

employees[0].lastName = "Jobs";

JSON 文件

  • JSON 文件的文件類型是 ".json"
  • JSON 文本的 MIME 類型是 "application/json"

把 JSON 文本轉(zhuǎn)換為 JavaScript 對象

JSON 最常見的用法之一,是從 web 服務(wù)器上讀取 JSON 數(shù)據(jù)(作為文件或作為 HttpRequest),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象,然后在網(wǎng)頁中使用該數(shù)據(jù)。

為了更簡單地為您講解,我們使用字符串作為輸入進行演示(而不是文件)。

JSON 實例 - 來自字符串的對象

創(chuàng)建包含 JSON 語法的 JavaScript 字符串:

var txt = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

由于 JSON 語法是 JavaScript 語法的子集,JavaScript 函數(shù) eval() 可用于將 JSON 文本轉(zhuǎn)換為 JavaScript 對象。

eval() 函數(shù)使用的是 JavaScript 編譯器,可解析 JSON 文本,然后生成 JavaScript 對象。必須把文本包圍在括號中,這樣才能避免語法錯誤:

var obj = eval ("(" + txt + ")");

在網(wǎng)頁中使用 JavaScript 對象:

例子

<html> <body> <h2>通過 JSON 字符串來創(chuàng)建對象</h3> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/javascript"> var txt = '{"employees":[' + '{"firstName":"Bill","lastName":"Gates" },' + '{"firstName":"George","lastName":"Bush" },' + '{"firstName":"Thomas","lastName":"Carter" }]}';var obj = eval ("(" + txt + ")");document.getElementById("fname").innerHTML=obj.employees[1].firstName document.getElementById("lname").innerHTML=obj.employees[1].lastName </script> </body> </html>

結(jié)果:

通過 JSON 字符串來創(chuàng)建對象

First Name: George
Last Name: Bush

JSON 解析器

提示:eval() 函數(shù)可編譯并執(zhí)行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。

使用 JSON 解析器將 JSON 轉(zhuǎn)換為 JavaScript 對象是更安全的做法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。

在瀏覽器中,這提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

較新的瀏覽器和最新的 ECMAScript (JavaScript) 標(biāo)準(zhǔn)中均包含了原生的對 JSON 的支持。

<html> <body> <h2>通過 JSON 字符串來創(chuàng)建對象</h3> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/javascript"> var txt = '{"employees":[' + '{"firstName":"Bill","lastName":"Gates" },' + '{"firstName":"George","lastName":"Bush" },' + '{"firstName":"Thomas","lastName":"Carter" }]}';obj = JSON.parse(txt);document.getElementById("fname").innerHTML=obj.employees[1].firstName document.getElementById("lname").innerHTML=obj.employees[1].lastName </script> </body> </html>

結(jié)果:

通過 JSON 字符串來創(chuàng)建對象

First Name: George
Last Name: Bush

轉(zhuǎn)載于:https://www.cnblogs.com/hsw-2013/p/3966947.html

總結(jié)

以上是生活随笔為你收集整理的什么是 JSON ?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。