最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在JavaScript中使用JSON數(shù)據(jù)

 更新時(shí)間:2016年02月15日 09:43:26   投稿:mrr  
JSON 是 JavaScript 原生格式,這意味著 在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包,接下來(lái)由腳本之家小編給大家介紹在JavaScript中使用JSON數(shù)據(jù)的方法,感興趣的朋友一起學(xué)習(xí)吧

JSON 是 JavaScript 原生格式,這意味著 在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包。

JSON語(yǔ)法

JSON建構(gòu)于兩種結(jié)構(gòu):

對(duì)象——名稱/值對(duì)的集合。不同的語(yǔ)言中,它被理解為對(duì)象,紀(jì)錄,結(jié)構(gòu),字典,哈希表,有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組。一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“‘名稱/值' 對(duì)”之間使用“,”(逗號(hào))分隔。

數(shù)組——值的有序列表。在大部分語(yǔ)言中,它被理解為數(shù)組。一個(gè)數(shù)組以“[”(左中括號(hào))開始,“]”(右中括號(hào))結(jié)束。值之間使用“,”(逗號(hào))分隔。

JSON沒(méi)有變量或其他控制結(jié)構(gòu)。JSON只用于數(shù)據(jù)傳輸。

將JSON 數(shù)據(jù)賦值給變量

例如,可以創(chuàng)建一個(gè)新的 JavaScript 變量,然后將 JSON 格式的數(shù)據(jù)字符串直接賦值給它:

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

這非常簡(jiǎn)單;現(xiàn)在 people 包含前面看到的 JSON 格式的數(shù)據(jù)。但是,這還不夠,因?yàn)樵L問(wèn)數(shù)據(jù)的方式似乎還不明顯。

訪問(wèn)數(shù)據(jù)

盡管看起來(lái)不明顯,但是上面的長(zhǎng)字符串實(shí)際上只是一個(gè)數(shù)組;將這個(gè)數(shù)組放進(jìn) JavaScript 變量之后,就可以很輕松地訪問(wèn)它。實(shí)際上,只需用點(diǎn)號(hào)表示法來(lái)表示數(shù)組元素。所以,要想訪問(wèn) programmers 列表的第一個(gè)條目的姓氏,只需在 JavaScript 中使用下面這樣的代碼:

people.programmers[0].lastName;

注意,數(shù)組索引是從零開始的。所以,這行代碼首先訪問(wèn) people 變量中的數(shù)據(jù);然后移動(dòng)到稱為 programmers 的條目,再移動(dòng)到第一個(gè)記錄( [0] );最后,訪問(wèn) lastName 鍵的值。結(jié)果是字符串值 “McLaughlin” 。

下面是使用同一變量的幾個(gè)示例。

people.authors[1].genre 
// Value is "fantasy"
people.musicians[3].lastName 
// Undefined. This refers to the fourth entry,and there isn't one
people.programmers[2].firstName 
// Value is "Elliotte"

利用這樣的語(yǔ)法,可以處理任何 JSON 格式的數(shù)據(jù),而不需要使用任何額外的 JavaScript 工具包或 API 。

修改 JSON 數(shù)據(jù)

正如可以用點(diǎn)號(hào)和括號(hào)訪問(wèn)數(shù)據(jù),也可以按照同樣的方式輕松地修改數(shù)據(jù):

people.musicians[1].lastName = "Rachmaninov";

在將字符串轉(zhuǎn)換為 JavaScript json 格式對(duì)象之后,就可以像這樣修改變量中的數(shù)據(jù)。

注意:json 格式的對(duì)象和 json 文本是不同的

var obj={name:" 張三 ","sex":' 男 '}; //json 格式的對(duì)象
var str=" { name: " 張三 " , "sex" : ' 男 ' }" ; //json 格式的字符串( json 格式的文本)

轉(zhuǎn)換回字符串

當(dāng)然,如果不能輕松地將對(duì)象轉(zhuǎn)換回本文提到的文本格式,那么所有數(shù)據(jù)修改都沒(méi)有太大的價(jià)值。在 JavaScript 中這種轉(zhuǎn)換也很簡(jiǎn)單:

var newJSONtext = people.toJSONString();

這樣就行了!現(xiàn)在就獲得了一個(gè)可以在任何地方使用的文本字符串,例如,可以將它用作 Ajax 應(yīng)用程序中的請(qǐng)求字符串。

更重要的是,可以將任何 JavaScript 對(duì)象轉(zhuǎn)換為 JSON 文本。并非只能處理原來(lái)用 JSON 字符串賦值的變量。為了對(duì)名為 myObject 的對(duì)象進(jìn)行轉(zhuǎn)換,只需執(zhí)行相同形式的命令:

<script type="text/javascript">
function Car(make,model,year,color)
{
this.make=make; 
this.model=model; 
this.year=year; 
this.color=color;
} 
function showCar()
{
var carr = new Car("Dodge","Coronet R/T",1968,"yellow"); 
alert(carr.toJSONString()); 
}
</script>

這就是 JSON 與其他數(shù)據(jù)格式之間最大的差異。如果使用 JSON ,只需調(diào)用一個(gè)簡(jiǎn)單的函數(shù),就可以獲得經(jīng)過(guò)格式化的數(shù)據(jù),可以直接使用了。對(duì)于其他數(shù)據(jù)格式,需要在原始數(shù)據(jù)和格式化數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換。即使使用 Document Object Model 這樣的 API (提供了將自己的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為文本的函數(shù)),也需要學(xué)習(xí)這個(gè) API 并使用 API 的對(duì)象,而不是使用原生的 JavaScript 對(duì)象和語(yǔ)法。

最終結(jié)論是,如果要處理大量 JavaScript 對(duì)象,那么 JSON 幾乎肯定是一個(gè)好選擇,這樣就可以輕松地將數(shù)據(jù)轉(zhuǎn)換為可以在請(qǐng)求中發(fā)送給服務(wù)器端程序的格式(Ajax) 。

JSON字符串轉(zhuǎn)換為JSON對(duì)象的方法

要使用上面的str1,必須使用下面的方法先轉(zhuǎn)化為JSON對(duì)象:

//由JSON字符串轉(zhuǎn)換為JSON對(duì)象
var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字符串轉(zhuǎn)換為JSON對(duì)象

或者

var obj = JSON.parse(str); //由JSON字符串轉(zhuǎn)換為JSON對(duì)象

然后,就可以這樣讀?。?/p>

Alert(obj.name);
Alert(obj.sex);

特別注意:如果obj本來(lái)就是一個(gè)JSON對(duì)象,那么使用eval()函數(shù)轉(zhuǎn)換后(哪怕是多次轉(zhuǎn)換)還是JSON對(duì)象,但是使用parseJSON()函數(shù)處理后會(huì)有問(wèn)題(拋出語(yǔ)法異常)。

相關(guān)文章

  • 原生js實(shí)現(xiàn)隨機(jī)點(diǎn)名

    原生js實(shí)現(xiàn)隨機(jī)點(diǎn)名

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)隨機(jī)點(diǎn)名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 如何利用js在兩個(gè)html窗口間通信

    如何利用js在兩個(gè)html窗口間通信

    這篇文章主要介紹了如何利用js在兩個(gè)html窗口間通信,如果讀者們有類似的需求,可以參考下
    2021-04-04
  • 深入淺析search 搜索框的寫法

    深入淺析search 搜索框的寫法

    本文以京東搜索框?yàn)槔o大家淺析search 搜索框的寫法,本文介紹的非常不錯(cuò),需要的朋友可以參考下
    2016-08-08
  • 魔鬼字典 JavaScript 筆記 代碼比較多亂

    魔鬼字典 JavaScript 筆記 代碼比較多亂

    魔鬼字典 JavaScript 筆記 代碼比較多亂,對(duì)于有經(jīng)驗(yàn)的看容易點(diǎn)。
    2010-03-03
  • JS操作字符串的一些常見(jiàn)內(nèi)置方法

    JS操作字符串的一些常見(jiàn)內(nèi)置方法

    這篇文章主要給大家介紹了關(guān)于JS操作字符串的一些常見(jiàn)內(nèi)置方法,JavaScript中有許多常用的數(shù)組和字符串操作函數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 原生javascript移動(dòng)端滑動(dòng)banner效果

    原生javascript移動(dòng)端滑動(dòng)banner效果

    這篇文章主要為大家詳細(xì)介紹了原生javascript移動(dòng)端滑動(dòng)banner效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JavaScript去除空格的三種方法(正則/傳參函數(shù)/trim)

    JavaScript去除空格的三種方法(正則/傳參函數(shù)/trim)

    個(gè)人認(rèn)為去除空格最好的方法.采用的是正則表達(dá)式,這是最核心的原理,同時(shí)呢,還是有其他方法可以辦到的,接下來(lái)將介紹一下三種方法(trim)空格,感興趣的朋友可以了解下,或許對(duì)你有幫助呢
    2013-02-02
  • javaScript實(shí)現(xiàn)放大鏡特效

    javaScript實(shí)現(xiàn)放大鏡特效

    這篇文章主要為大家詳細(xì)介紹了javaScript實(shí)現(xiàn)放大鏡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • bootstrap table實(shí)現(xiàn)合并單元格效果

    bootstrap table實(shí)現(xiàn)合并單元格效果

    這篇文章主要為大家詳細(xì)介紹了bootstrap table實(shí)現(xiàn)合并單元格效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 淺析JavaScript中的隱式類型轉(zhuǎn)換

    淺析JavaScript中的隱式類型轉(zhuǎn)換

    這篇文章主要是對(duì)JavaScript中的隱式類型轉(zhuǎn)換進(jìn)行了詳細(xì)分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12

最新評(píng)論

潞城市| 南陵县| 宾川县| 盱眙县| 普格县| 闸北区| 清河县| 和田市| 贵港市| 湖北省| 额济纳旗| 定襄县| 雅江县| 沐川县| 长葛市| 页游| 轮台县| 九江县| 始兴县| 通化市| 卢湾区| 日土县| 开封县| 亚东县| 武威市| 边坝县| 施甸县| 伽师县| 吉木萨尔县| 谢通门县| 石渠县| 教育| 时尚| 中宁县| 醴陵市| 建瓯市| 吉林省| 万源市| 夹江县| 溧水县| 青海省|