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

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

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

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

JSON語法

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

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

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

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

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

例如,可以創(chuàng)建一個新的 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" }
]
}

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

訪問數(shù)據(jù)

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

people.programmers[0].lastName;

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

下面是使用同一變量的幾個示例。

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"

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

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

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

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

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

注意:json 格式的對象和 json 文本是不同的

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

轉(zhuǎn)換回字符串

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

var newJSONtext = people.toJSONString();

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

更重要的是,可以將任何 JavaScript 對象轉(zhuǎn)換為 JSON 文本。并非只能處理原來用 JSON 字符串賦值的變量。為了對名為 myObject 的對象進行轉(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)用一個簡單的函數(shù),就可以獲得經(jīng)過格式化的數(shù)據(jù),可以直接使用了。對于其他數(shù)據(jù)格式,需要在原始數(shù)據(jù)和格式化數(shù)據(jù)之間進行轉(zhuǎn)換。即使使用 Document Object Model 這樣的 API (提供了將自己的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為文本的函數(shù)),也需要學(xué)習(xí)這個 API 并使用 API 的對象,而不是使用原生的 JavaScript 對象和語法。

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

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

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

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

或者

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

或者

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

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

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

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

相關(guān)文章

  • 原生js實現(xiàn)隨機點名

    原生js實現(xiàn)隨機點名

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

    如何利用js在兩個html窗口間通信

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

    深入淺析search 搜索框的寫法

    本文以京東搜索框為例給大家淺析search 搜索框的寫法,本文介紹的非常不錯,需要的朋友可以參考下
    2016-08-08
  • 魔鬼字典 JavaScript 筆記 代碼比較多亂

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

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

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

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

    原生javascript移動端滑動banner效果

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

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

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

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

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

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

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

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

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

最新評論

镇原县| 泰兴市| 吉木萨尔县| 上栗县| 封丘县| 孝义市| 天全县| 福清市| 曲水县| 东山县| 田东县| 准格尔旗| 银川市| 龙泉市| 工布江达县| 奉新县| 仁布县| 黄梅县| 太湖县| 郑州市| 花莲市| 敖汉旗| 高雄市| 尼勒克县| 龙海市| 五台县| 高台县| 平果县| 哈巴河县| 托里县| 清水河县| 万宁市| 玛纳斯县| 文登市| 泾阳县| 余干县| 开远市| 吐鲁番市| 成安县| 龙海市| 洞头县|