欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSON 教程 json入門學(xué)習(xí)筆記

 更新時(shí)間:2020年09月22日 11:28:39   投稿:mdxy-dxy  
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫。

JSON: JavaScript Object Notation(JavaScript 對(duì)象表示法)

JSON 是存儲(chǔ)和交換文本信息的語法。類似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 實(shí)例

{
 "sites": [
 { "name":"腳本之家" , "url":"www.dbjr.com.cn" }, 
 { "name":"google" , "url":"www.google.com" }, 
 { "name":"微博" , "url":"www.weibo.com" }
 ]
}

這個(gè) sites 對(duì)象是包含 3 個(gè)站點(diǎn)記錄(對(duì)象)的數(shù)組。

什么是 JSON ?

JSON 指的是 JavaScript 對(duì)象表示法(JavaScript Object Notation)
JSON 是輕量級(jí)的文本數(shù)據(jù)交換格式
JSON 獨(dú)立于語言:JSON 使用 Javascript語法來描述數(shù)據(jù)對(duì)象,但是 JSON 仍然獨(dú)立于語言和平臺(tái)。JSON 解析器和 JSON 庫支持許多不同的編程語言。 目前非常多的動(dòng)態(tài)(PHP,JSP,.NET)編程語言都支持JSON。
JSON 具有自我描述性,更易理解
JSON - 轉(zhuǎn)換為 JavaScript 對(duì)象
JSON 文本格式在語法上與創(chuàng)建 JavaScript 對(duì)象的代碼相同。

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

在線實(shí)例

通過我們的編輯器,您可以在線編輯 JavaScript 代碼,然后通過點(diǎn)擊一個(gè)按鈕來查看結(jié)果:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>腳本之家(jb51.net)</title>
</head>
<body>
<h2>JavaScript 創(chuàng)建 JSON 對(duì)象</h2>
<p>
網(wǎng)站名稱: <span id="jname"></span><br /> 
網(wǎng)站地址: <span id="jurl"></span><br /> 
網(wǎng)站 slogan: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= {
 "name":"腳本之家",
 "url":"www.dbjr.com.cn", 
 "slogan":"學(xué)的不僅是技術(shù),更是夢(mèng)想!"
};
document.getElementById("jname").innerHTML=JSONObject.name 
document.getElementById("jurl").innerHTML=JSONObject.url 
document.getElementById("jslogan").innerHTML=JSONObject.slogan
</script> 
</body>
</html>

與 XML 相同之處

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

與 XML 不同之處

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

為什么使用 JSON?

對(duì)于 AJAX 應(yīng)用程序來說,JSON 比 XML 更快更易使用:

使用 XML
讀取 XML 文檔
使用 XML DOM 來循環(huán)遍歷文檔
讀取值并存儲(chǔ)在變量中
使用 JSON
讀取 JSON 字符串
用 eval() 處理 JSON 字符串

JSON 語法

JSON 語法是 JavaScript 語法的子集。

JSON 語法規(guī)則

JSON 語法是 JavaScript 對(duì)象表示語法的子集。

數(shù)據(jù)在名稱/值對(duì)中
數(shù)據(jù)由逗號(hào)分隔
大括號(hào)保存對(duì)象
中括號(hào)保存數(shù)組

JSON 名稱/值對(duì)

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

名稱/值對(duì)包括字段名稱(在雙引號(hào)中),后面寫一個(gè)冒號(hào),然后是值:

"name" : "腳本之家"

這很容易理解,等價(jià)于這條 JavaScript 語句:

name = "腳本之家"

JSON 值

JSON 值可以是:

數(shù)字(整數(shù)或浮點(diǎn)數(shù))
字符串(在雙引號(hào)中)
邏輯值(true 或 false)
數(shù)組(在中括號(hào)中)
對(duì)象(在大括號(hào)中)
null

JSON 數(shù)字

JSON 數(shù)字可以是整型或者浮點(diǎn)型:

{ "age":30 }

JSON 對(duì)象

JSON 對(duì)象在大括號(hào)({})中書寫:

對(duì)象可以包含多個(gè)名稱/值對(duì):

{ "name":"腳本之家" , "url":"www.dbjr.com.cn" }

這一點(diǎn)也容易理解,與這條 JavaScript 語句等價(jià):

name = "腳本之家"
url = "www.dbjr.com.cn"

JSON 數(shù)組

JSON 數(shù)組在中括號(hào)中書寫:

數(shù)組可包含多個(gè)對(duì)象:

{
"sites": [
{ "name":"腳本之家" , "url":"www.dbjr.com.cn" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}

在上面的例子中,對(duì)象 "sites" 是包含三個(gè)對(duì)象的數(shù)組。每個(gè)對(duì)象代表一條關(guān)于某個(gè)網(wǎng)站(name、url)的記錄。

JSON 布爾值

JSON 布爾值可以是 true 或者 false:

{ "flag":true }

JSON null

JSON 可以設(shè)置 null 值:

{ "jb51":null }

JSON 使用 JavaScript 語法

因?yàn)?JSON 使用 JavaScript 語法,所以無需額外的軟件就能處理 JavaScript 中的 JSON。

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

var sites = [
    { "name":"jb51" , "url":"www.jb51.com" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
];

可以像這樣訪問 JavaScript 對(duì)象數(shù)組中的第一項(xiàng)(索引從 0 開始):

sites[0].name;

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

jb51

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

sites[0].name="腳本之家";

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>腳本之家(jb51.com)</title>
</head>
<body>
<h2>JavaScript 創(chuàng)建 JSON 對(duì)象</h2>
<p>第一個(gè)網(wǎng)站名稱: <span id="name1"></span></p> 
<p>第一個(gè)網(wǎng)站修改后的名稱: <span id="name2"></span></p> 

<script>
var sites = [
	{ "name":"jb51" , "url":"www.jb51.com" }, 
	{ "name":"google" , "url":"www.google.com" }, 
	{ "name":"微博" , "url":"www.weibo.com" }
];

document.getElementById("name1").innerHTML=sites[0].name;
// 修改網(wǎng)站名稱
sites[0].name="腳本之家";
document.getElementById("name2").innerHTML=sites[0].name;
</script>

</body>
</html>

在下面的章節(jié),您將學(xué)到如何把 JSON 文本轉(zhuǎn)換為 JavaScript 對(duì)象。

JSON 文件

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

JSON vs XML

JSON 和 XML 都用于接收 web 服務(wù)端的數(shù)據(jù)。

JSON 和 XML在寫法上有所不同,如下所示:

JSON 實(shí)例

{
    "sites": [
    { "name":"腳本之家" , "url":"www.jb51.com" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
    ]
}

XML 實(shí)例

<sites>
 <site>
  <name>腳本之家</name> <url>www.jb51.com</url>
 </site>
 <site>
  <name>google</name> <url>www.google.com</url>
 </site>
 <site>
  <name>微博</name> <url>www.weibo.com</url>
 </site>
</sites>

JSON 與 XML 的相同之處:

JSON 和 XML 數(shù)據(jù)都是 "自我描述" ,都易于理解。
JSON 和 XML 數(shù)據(jù)都是有層次的結(jié)構(gòu)
JSON 和 XML 數(shù)據(jù)可以被大多數(shù)編程語言使用
JSON 與 XML 的不同之處:
JSON 不需要結(jié)束標(biāo)簽
JSON 更加簡(jiǎn)短
JSON 讀寫速度更快
JSON 可以使用數(shù)組
最大的不同是:XML 需要使用 XML 解析器來解析,JSON 可以使用標(biāo)準(zhǔn)的 JavaScript 函數(shù)來解析。

JSON.parse(): 將一個(gè) JSON 字符串轉(zhuǎn)換為 JavaScript 對(duì)象。
JSON.stringify(): 于將 JavaScript 值轉(zhuǎn)換為 JSON 字符串。

為什么 JSON 比 XML 更好?

XML 比 JSON 更難解析。

JSON 可以直接使用現(xiàn)有的 JavaScript 對(duì)象解析。

針對(duì) AJAX 應(yīng)用,JSON 比 XML 數(shù)據(jù)加載更快,而且更簡(jiǎn)單:

使用 XML

獲取 XML 文檔
使用 XML DOM 迭代循環(huán)文檔
接數(shù)據(jù)解析出來復(fù)制給變量

使用 JSON

獲取 JSON 字符串
JSON.Parse 解析 JSON 字符串

Json介紹:

  JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫。
      json 官方網(wǎng)站 http://www.json.org/
      json.net 下載地址 http://json.codeplex.com/releases/view/37810

Demo:

  

描述:

點(diǎn)擊獲取按鈕后,將請(qǐng)求頁面,獲取json數(shù)據(jù),填充到表格

html代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<script type="text/jscript" src="../jquery/jquery-1.4.2.min.js"></script> 
<script language="javascript" type="text/javascript"> 
$(function() { 
$("#Button1").click(function() { 
$.get("json1.aspx?m=m", null, function(callbackmsg) { 
var product = eval(callbackmsg); 
ShowProduct(product) 
}) 
}); 
}) 
function ShowProduct(callbackmsg) { 
var row=''; 
for (var u in callbackmsg) { 
var len = callbackmsg[u].length; 
row += '<tr>'; 
row += '<td>' + callbackmsg[u].Name + '</td>'; 
row += '<td>' + callbackmsg[u].Price + '</a></td>'; 
row += '<td>' + callbackmsg[u].Size + '</td>'; 
row += '</tr>'; 
} 
$("#body").html(row); 
} 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<input id="Button1" type="button" value="獲取" /> 
</div> 
<table> 
<thead> 
<tr> 
<th> 
名稱 
</th> 
<th> 
價(jià)格 
</th> 
<th> 
大小 
</th> 
</tr> 
</thead> 
<tbody id="body"> 
</tbody> 
</table> 
</form> 
</body> 
</html> 

后臺(tái)代碼:

public partial class json1 : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (HttpContext.Current.Request.QueryString["m"] != null) 
{ 
List<Product> Products = new List<Product>(); 
Products.Add(new Product() { Name = "筆記本", Price = "4.2", Size = "30x50" }); 
Products.Add(new Product() { Name = "尺子", Price = "1.2", Size = "30x50" }); 
Products.Add(new Product() { Name = "書", Price = "36", Size = "30x50" }); 
Products.Add(new Product() { Name = "鋼筆", Price = "6.0", Size = "30x50" }); 
Products.Add(new Product() { Name = "鉛筆", Price = "2.2", Size = "30x50" }); 
string json = JsonConvert.SerializeObject(Products); 
Response.Write(json); 
Response.End(); 
} 
} 
} 
public class Product 
{ 
public string Name { get; set; } 
public string Size { get; set; } 
public string Price { get; set; } 
} 

知識(shí)點(diǎn):

  1.json官方提供了用于.net操作的dll類庫,JsonConvert.SerializeObject將.net對(duì)象序列化為json。
  2.Javascript讀取json對(duì)象var product = eval(callbackmsg)。
  3.Javascript讀取json值callbackmsg[u].Name。

相關(guān)文章

  • json-lib出現(xiàn)There is a cycle in the hierarchy解決辦法

    json-lib出現(xiàn)There is a cycle in the hierarchy解決辦法

    如果需要解析的數(shù)據(jù)間存在級(jí)聯(lián)關(guān)系,而互相嵌套引用,在hibernate中極容易嵌套而拋出net.sf.json.JSONException: There is a cycle in the hierarchy異常。
    2010-02-02
  • json.stringify()與json.parse()的區(qū)別以及用處

    json.stringify()與json.parse()的區(qū)別以及用處

    這篇文章主要介紹了json.stringify()與json.parse()的區(qū)別以及用處,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • json 實(shí)例詳細(xì)說明教程

    json 實(shí)例詳細(xì)說明教程

    這是個(gè)人在最近使用json時(shí)做的總結(jié),拿出來給沒接觸過的小弟們曬曬,適用與沒接觸過json的人員,其中json2。js請(qǐng)到j(luò)son官網(wǎng)下載。
    2009-10-10
  • JavaScript 解析Json字符串的性能比較分析代碼

    JavaScript 解析Json字符串的性能比較分析代碼

    我們?cè)谑褂肁JAX來做服務(wù)器端和客戶端交互的時(shí)候,一般的做法是讓服務(wù)器端返回一段JSON字符串,然后在客戶端把它解析成JavaScript對(duì)象。
    2009-12-12
  • json的定義、標(biāo)準(zhǔn)格式及json字符串檢驗(yàn)

    json的定義、標(biāo)準(zhǔn)格式及json字符串檢驗(yàn)

    今天分享和總結(jié)一些json的基本定義、格式、字符串的格式,以及在做測(cè)試的時(shí)候使用json時(shí)做一些簡(jiǎn)單的校驗(yàn)
    2014-05-05
  • JSON掃盲帖 JSON.as類教程

    JSON掃盲帖 JSON.as類教程

    如果json字符串是從html用FlashVars來傳遞參數(shù)時(shí)那么字符串中的第一個(gè)雙引號(hào)(包括雙引號(hào))以后的內(nèi)容就不會(huì)得到傳送.
    2009-02-02
  • json實(shí)現(xiàn)前后臺(tái)的相互傳值詳解

    json實(shí)現(xiàn)前后臺(tái)的相互傳值詳解

    這篇文章主要介紹了json實(shí)現(xiàn)前后臺(tái)的相互傳值詳解,需要的朋友可以參考下
    2015-01-01
  • JSON 編輯器實(shí)現(xiàn)代碼

    JSON 編輯器實(shí)現(xiàn)代碼

    用來簡(jiǎn)單的查看、輔助修改繁雜的JSON數(shù)據(jù),格式化或者壓縮JJSON,當(dāng)然也可以自由即時(shí)編輯一些簡(jiǎn)單的JSON數(shù)據(jù)。
    2009-12-12
  • JS對(duì)象與JSON格式數(shù)據(jù)相互轉(zhuǎn)換

    JS對(duì)象與JSON格式數(shù)據(jù)相互轉(zhuǎn)換

    最近遇到這個(gè)問題,JS對(duì)象和JSON格式數(shù)據(jù)的相互轉(zhuǎn)換。其實(shí),也就是兩個(gè)問題:JS對(duì)象轉(zhuǎn)換成為JSON格式數(shù)據(jù)、JSON格式數(shù)據(jù)轉(zhuǎn)換成為JS對(duì)象
    2012-02-02
  • 解決json日期格式問題的3種方法

    解決json日期格式問題的3種方法

    這篇文章主要介紹了解決json日期格式問題的3種方法 ,需要的朋友可以參考下
    2014-02-02

最新評(píng)論