整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript中處理JSON的全面指南

          JavaScript中處理JSON的全面指南

          SON對(duì)象是什么?

          JSON代表JavaScript對(duì)象表示法,是一種基于JavaScript對(duì)象語(yǔ)法的結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)文本格式。JSON僅定義了兩種數(shù)據(jù)結(jié)構(gòu):對(duì)象和數(shù)組。JSON對(duì)象是由花括號(hào)括起來(lái)的鍵/值對(duì)組成的數(shù)據(jù)類型。JSON數(shù)組是值的列表。當(dāng)數(shù)據(jù)從服務(wù)器發(fā)送到網(wǎng)頁(yè)或在文件或數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)時(shí),通常會(huì)使用JSON對(duì)象。JSON與JavaScript對(duì)象文字語(yǔ)法非常相似,但可以獨(dú)立于JavaScript使用。許多編程環(huán)境支持讀取和生成JSON。

          JSON對(duì)象的特點(diǎn)

          • 它們以逗號(hào)分隔的鍵/值對(duì)形式編寫。鍵是用雙引號(hào)括起來(lái)的字符串,值必須是以下JSON數(shù)據(jù)類型字符串?dāng)?shù)字對(duì)象數(shù)組布爾值空值
          • 它們由花括號(hào){}括起來(lái)?;ɡㄌ?hào)也可以用于在對(duì)象內(nèi)部嵌套對(duì)象,從而創(chuàng)建分層結(jié)構(gòu)。
          • 數(shù)組用方括號(hào)[]括起來(lái),它們的值用逗號(hào)(,)分隔。數(shù)組中的每個(gè)值可以是不同的類型,包括另一個(gè)數(shù)組或?qū)ο蟆?/span>
          • 它們區(qū)分大小寫,這意味著鍵和值在拼寫和大小寫上必須完全匹配。
          • 它們不允許尾隨逗號(hào)。簡(jiǎn)單來(lái)說(shuō),花括號(hào)外部或雙引號(hào)內(nèi)部不應(yīng)該有任何不屬于鍵/值對(duì)的文本。
          • 它們不允許注釋。

          JSON提供了幾個(gè)優(yōu)點(diǎn),使其成為表示結(jié)構(gòu)化數(shù)據(jù)的熱門選擇:

          • 簡(jiǎn)單易讀:JSON簡(jiǎn)單直觀,易于理解。與XML等更冗長(zhǎng)的格式不同,JSON相對(duì)容易閱讀。其簡(jiǎn)潔的語(yǔ)法允許高效的數(shù)據(jù)表示。
          • 解析簡(jiǎn)便:JSON的解析比XML更簡(jiǎn)單快速。
          • 靈活性:JSON支持各種數(shù)據(jù)類型和對(duì)象層次結(jié)構(gòu),并且關(guān)系可以在傳輸過(guò)程中保持并在接收端適當(dāng)?shù)刂匦陆M裝。
          • 廣泛應(yīng)用:大多數(shù)現(xiàn)代API接受JSON請(qǐng)求并發(fā)出JSON響應(yīng),使其成為系統(tǒng)之間數(shù)據(jù)交換的通用格式。

          JSON對(duì)象示例


          基本JSON對(duì)象:{"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null}

          嵌套JSON對(duì)象:這是一種由名稱/值對(duì)列表組成的數(shù)據(jù)類型,其中一個(gè)或多個(gè)值是另一個(gè)JSON對(duì)象。{"person": {"name": "Natalie", "age": 21}, "address": {"street": "123 XYZ Street", "City": "New York", "State" : "NY", "zip": "10001"}}

          JSON對(duì)象數(shù)組:[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]

          解析JSON對(duì)象

          解析是將JSON對(duì)象轉(zhuǎn)換為本機(jī)JavaScript對(duì)象的方法。

          JSON.parse()方法:JSON.parse()方法解析字符串并返回一個(gè)JavaScript對(duì)象。字符串必須是JSON格式。

          語(yǔ)法:JSON.parse(string, function)

          參數(shù)

          必需/可選

          描述

          字符串

          必需

          以JSON格式編寫的字符串

          Reviver函數(shù)

          可選

          一個(gè)接受鍵和值作為參數(shù)并返回修改后的值或undefined以刪除屬性的函數(shù)。對(duì)每個(gè)項(xiàng)目調(diào)用該函數(shù)。任何嵌套對(duì)象在父對(duì)象之前轉(zhuǎn)換。

          示例

          var text='{"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null}';
          var obj=JSON.parse(text, function (key, value) {
               if (key==="name") {
                 return value.toUpperCase();
               } else {
                 return value;
               }
          });
          console.log(obj);

          輸出

          {
               name: 'NATALIE',
               married: false,
               age: 21,
               city: 'New York',
               zip: '10001',
               awards: null
          }

          JSON.stringify()方法

          該方法將JavaScript對(duì)象轉(zhuǎn)換為字符串。在將數(shù)據(jù)發(fā)送到Web服務(wù)器時(shí),數(shù)據(jù)必須是字符串。JSON.stringify()也適用于數(shù)組。

          語(yǔ)法:JSON.stringify(obj, replacer, space)

          參數(shù)

          必需/可選

          描述

          Obj

          必需

          要轉(zhuǎn)換為字符串的值

          Replacer

          可選

          用于轉(zhuǎn)換結(jié)果的函數(shù)或數(shù)組。對(duì)每個(gè)項(xiàng)目調(diào)用replacer。

          Space

          可選

          用作空格的字符串(最多10個(gè)字符)或數(shù)字,從0到10,表示要用作空格的空格字符數(shù)。

          示例

          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          var text=JSON.stringify(obj, function (key, value) {
               if (key==="name") {
                 return value.toUpperCase();
               } else {
                 return value;
               }
          });
          console.log(text);

          輸出

          {"name":"NATALIE","married":false,"age":21,"city":"New York","zip":"10001","awards":null}

          /*為每個(gè)空格插入單詞SPACE:*/
          var newText=JSON.stringify(obj, null, "space");
          console.log(“Text with the word space “+ newText);

          輸出

          Text with the word space {
          space"name": "Natalie",
          space"married": false,
          space"age": 21,
          space"city": "New York",
          space"zip": "10001",
          space"awards": null
          }

          JSON對(duì)象導(dǎo)航

          可以使用點(diǎn)(.)或方括號(hào)([])表示法導(dǎo)航到其屬性并訪問(wèn)它們的值。

          // 使用點(diǎn)表示法訪問(wèn)名稱
          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          console.log(obj.name);                      輸出:Natalie
          // 使用點(diǎn)表示法訪問(wèn)城市
          console.log(obj["city"];                      輸出:New York
          var obj_array=[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]
          // 使用點(diǎn)和方括號(hào)表示法訪問(wèn)第一個(gè)成員的名稱
          console.log(obj_array[0].name);       輸出:Natalie
          // 使用點(diǎn)和方括號(hào)表示法訪問(wèn)第二個(gè)成員的年齡
          console.log(obj_array[1][ "age"]);     輸出:37

          Object.keys()方法

          keys()方法返回給定對(duì)象的自身可枚舉字符串鍵屬性的數(shù)組。作為靜態(tài)方法的keys()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.keys(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          Object.values()方法

          values()方法返回給定對(duì)象的自身可枚舉字符串鍵屬性值的數(shù)組。作為靜態(tài)方法的values()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.values(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          Object.entries()方法

          該方法返回對(duì)象的可枚舉屬性的鍵值對(duì)數(shù)組。作為靜態(tài)方法的entries()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.entries(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          示例

          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          var keys=Object.keys(obj);
          var values=Object.values(obj);
          var entries=Object.entries(obj);
          console.log("Array of keys :");
          console.log(keys);
          console.log("Array of values :");
          console.log(values);
          console.log("Array of entries :");
          console.log(entries);

          輸出

          Array of keys :
          [ 'name', 'married', 'age', 'city', 'zip', 'awards' ]
          Array of values :
          [ 'Natalie', false, 21, 'New York', '10001', null ]
          Array of entries :
          [
               [ 'name', 'Natalie' ],
               [ 'married', false ],
               [ 'age', 21 ],
               [ 'city', 'New York' ],
               [ 'zip', '10001' ],
               [ 'awards', null ]
          ]

          for循環(huán)

          for循環(huán)重復(fù)執(zhí)行,直到指定的條件評(píng)估為false。

          語(yǔ)法:for (初始化; 條件; 表達(dá)式) {要執(zhí)行的代碼塊}

          參數(shù)

          必需/可選

          描述

          初始化

          必需

          在執(zhí)行代碼塊之前執(zhí)行一次

          條件

          必需

          執(zhí)行代碼塊的條件

          表達(dá)式

          必需

          在執(zhí)行代碼塊后每次執(zhí)行

          示例

          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          for(var i=0; i<obj.length; i++) {
                     console.log("Name:  " + obj[i]["name"]); //使用方括號(hào)表示法
                     console.log("Married Status:     " + obj[i].married); //使用點(diǎn)表示法
          }

          輸出

          輸出
          Name:     Natalie
          Married Status:  true
          Name:     David
          Married Status:  false
          Name:     Mark
          Married Status:  true

          for…in循環(huán)

          for...in語(yǔ)句遍歷對(duì)象的所有可枚舉字符串非符號(hào)屬性,包括繼承的可枚舉屬性。循環(huán)內(nèi)部的代碼塊對(duì)每個(gè)屬性執(zhí)行一次。

          語(yǔ)法:for (item in object) {要執(zhí)行的代碼塊}

          參數(shù)

          必需/可選

          描述

          item

          必需

          用于迭代屬性的變量

          object

          必需

          要迭代的對(duì)象

          示例

          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          for(item in obj) {
                     console.log("Name:  " + obj[item]["name"]); //使用方括號(hào)表示法
                     console.log("Married Status:     " + obj[item].married); //使用點(diǎn)表示法
          }

          輸出

          Name:     Natalie
          Married Status:  true
          Name:     David
          Married Status:  false
          Name:     Mark
          Married Status:  true

          for…of循環(huán)

          for..of循環(huán)按順序操作來(lái)自可迭代對(duì)象的值。

          語(yǔ)法:array.forEach(iterable object) {statement}

          參數(shù)

          必需/可選

          描述

          Variable

          必需

          對(duì)于每次迭代,下一個(gè)屬性的值被賦給變量。變量可以使用const、let或var聲明。

          Iterable object

          必需

          循環(huán)操作的值來(lái)源。

          Name: Natalie
          Married Status: true
          Name: David
          Married Status: false
          Name: Mark
          Married Status: true

          ## `forEach()`**方法** 
          
          `forEach()`方法對(duì)數(shù)組中的每個(gè)元素調(diào)用一個(gè)函數(shù)。它必須至少接受一個(gè)參數(shù),該參數(shù)表示數(shù)組的元素。
          
          *語(yǔ)法:*`array.forEach(function(currentValue, index, array), thisValue)`
          
          |  |  |  |
          | --- | --- | --- |
          | **參數(shù)**  | **必需/可選**  | **描述**  |
          | Function  | 必需 | 用于對(duì)數(shù)組每個(gè)元素運(yùn)行的函數(shù) |
          | currentvalue | 必需 | 當(dāng)前元素的值 |
          | index | 可選 | 當(dāng)前元素的索引 |
          | Array | 可選 | 當(dāng)前元素的數(shù)組 |
          | Thisvalue | 可選 | 作為this值傳遞給函數(shù)的值。默認(rèn)為undefined。 |
          
          ### 示例
          
          ```json
          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          obj.forEach((item, index, arr)=> {
                 console.log("元素詳情:     " +index);
                 console.log("姓名:      "+arr[index]["name"]);
                 console.log("年齡:      "+item.age);
          });

          輸出

          元素詳情:  0
          姓名:      Natalie
          年齡:      21
          元素詳情:  1
          姓名:      David
          年齡:      37
          元素詳情:  2
          姓名:      Mark
          年齡:      43

          結(jié)論

          JSON通常用于在服務(wù)器和Web應(yīng)用程序之間傳輸數(shù)據(jù)。JSON的靈活性、易解析性和簡(jiǎn)單性使軟件開發(fā)人員能夠在各種編程環(huán)境中高效地處理結(jié)構(gòu)化數(shù)據(jù)。

          SON對(duì)象是什么?

          JSON代表JavaScript對(duì)象表示法,是一種基于JavaScript對(duì)象語(yǔ)法的結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)文本格式。JSON僅定義了兩種數(shù)據(jù)結(jié)構(gòu):對(duì)象和數(shù)組。JSON對(duì)象是由花括號(hào)括起來(lái)的鍵/值對(duì)組成的數(shù)據(jù)類型。JSON數(shù)組是值的列表。當(dāng)數(shù)據(jù)從服務(wù)器發(fā)送到網(wǎng)頁(yè)或數(shù)據(jù)存儲(chǔ)在文件或數(shù)據(jù)庫(kù)中時(shí),通常會(huì)使用JSON對(duì)象。JSON與JavaScript對(duì)象文字語(yǔ)法非常相似,但可以獨(dú)立于JavaScript使用。許多編程環(huán)境支持讀取和生成JSON。

          JSON對(duì)象的特點(diǎn)

          • 它們以逗號(hào)分隔的鍵/值對(duì)形式編寫。鍵是用雙引號(hào)括起來(lái)的字符串,值必須是以下JSON數(shù)據(jù)類型字符串?dāng)?shù)字對(duì)象數(shù)組布爾值空值
          • 它們由花括號(hào){}括起來(lái)?;ɡㄌ?hào)也可以用于在對(duì)象內(nèi)部嵌套對(duì)象,從而創(chuàng)建分層結(jié)構(gòu)。
          • 數(shù)組用方括號(hào)[]括起來(lái),它們的值用逗號(hào)(,)分隔。數(shù)組中的每個(gè)值可以是不同類型,包括另一個(gè)數(shù)組或?qū)ο蟆?/span>
          • 它們區(qū)分大小寫,這意味著鍵和值在拼寫和大小寫上必須完全匹配。
          • 它們不允許尾隨逗號(hào)。簡(jiǎn)單來(lái)說(shuō),花括號(hào)外部或雙引號(hào)內(nèi)部不應(yīng)有任何不屬于鍵/值對(duì)的文本。
          • 它們不允許注釋。

          JSON提供了幾個(gè)優(yōu)點(diǎn),使其成為表示結(jié)構(gòu)化數(shù)據(jù)的流行選擇:

          • 簡(jiǎn)單易讀:JSON簡(jiǎn)單直觀,易于理解。與XML等更冗長(zhǎng)的格式不同,JSON相對(duì)容易閱讀。其簡(jiǎn)潔的語(yǔ)法允許高效的數(shù)據(jù)表示。
          • 解析簡(jiǎn)便:JSON比XML更簡(jiǎn)單、更快速。
          • 靈活性:JSON支持各種數(shù)據(jù)類型和對(duì)象層次結(jié)構(gòu),并且關(guān)系可以在傳輸過(guò)程中保持并在接收端適當(dāng)?shù)刂匦陆M裝。
          • 廣泛應(yīng)用:大多數(shù)現(xiàn)代API接受JSON請(qǐng)求并發(fā)出JSON響應(yīng),使其成為系統(tǒng)之間數(shù)據(jù)交換的通用格式。

          JSON對(duì)象示例


          基本JSON對(duì)象:{"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null}

          嵌套JSON對(duì)象:這是一種由名稱/值對(duì)列表組成的數(shù)據(jù)類型,其中一個(gè)或多個(gè)值是另一個(gè)JSON對(duì)象。{"person": {"name": "Natalie", "age": 21}, "address": {"street": "123 XYZ Street", "City": "New York", "State" : "NY", "zip": "10001"}}

          JSON對(duì)象數(shù)組:[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]

          解析JSON對(duì)象

          解析是將JSON對(duì)象轉(zhuǎn)換為本機(jī)JavaScript對(duì)象的方法。

          JSON.parse()方法:JSON.parse()方法解析字符串并返回一個(gè)JavaScript對(duì)象。字符串必須是JSON格式。

          語(yǔ)法:JSON.parse(string, function)

          參數(shù)

          必需/可選

          描述

          字符串

          必需

          以JSON格式編寫的字符串

          Reviver函數(shù)

          可選

          一個(gè)接受鍵和值作為參數(shù)并返回修改后的值或undefined以刪除屬性的函數(shù)。對(duì)每個(gè)項(xiàng)目調(diào)用該函數(shù)。任何嵌套對(duì)象在父對(duì)象之前轉(zhuǎn)換。

          示例

          var text='{"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null}';
          var obj=JSON.parse(text, function (key, value) {
               if (key==="name") {
                 return value.toUpperCase();
               } else {
                 return value;
               }
          });
          console.log(obj);

          輸出

          {
               name: 'NATALIE',
               married: false,
               age: 21,
               city: 'New York',
               zip: '10001',
               awards: null
          }

          JSON.stringify()方法

          該方法將JavaScript對(duì)象轉(zhuǎn)換為字符串。在將數(shù)據(jù)發(fā)送到Web服務(wù)器時(shí),數(shù)據(jù)必須是字符串。JSON.stringify()也適用于數(shù)組。

          語(yǔ)法:JSON.stringify(obj, replacer, space)

          參數(shù)

          必需/可選

          描述

          Obj

          必需

          要轉(zhuǎn)換為字符串的值

          Replacer

          可選

          用于轉(zhuǎn)換結(jié)果的函數(shù)或數(shù)組。對(duì)每個(gè)項(xiàng)目調(diào)用replacer。

          Space

          可選

          用作空格的字符串(最多10個(gè)字符)或數(shù)字,從0到10,表示要用作空格的空格字符數(shù)。

          示例

          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          var text=JSON.stringify(obj, function (key, value) {
               if (key==="name") {
                 return value.toUpperCase();
               } else {
                 return value;
               }
          });
          console.log(text);

          輸出

          {"name":"NATALIE","married":false,"age":21,"city":"New York","zip":"10001","awards":null}

          /*為每個(gè)空格插入單詞SPACE:*/
          var newText=JSON.stringify(obj, null, "space");
          console.log(“Text with the word space “+ newText);

          輸出

          Text with the word space {
          space"name": "Natalie",
          space"married": false,
          space"age": 21,
          space"city": "New York",
          space"zip": "10001",
          space"awards": null
          }

          JSON對(duì)象導(dǎo)航

          可以使用點(diǎn)(.)或方括號(hào)([])表示法導(dǎo)航到其屬性并訪問(wèn)它們的值。

          // 使用點(diǎn)表示法訪問(wèn)名稱
          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          console.log(obj.name);                      輸出:Natalie
          // 使用點(diǎn)表示法訪問(wèn)城市
          console.log(obj["city"];                      輸出:New York
          var obj_array=[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]
          // 使用點(diǎn)和方括號(hào)表示法訪問(wèn)第一個(gè)成員的名稱
          console.log(obj_array[0].name);       輸出:Natalie
          // 使用點(diǎn)和方括號(hào)表示法訪問(wèn)第二個(gè)成員的年齡
          console.log(obj_array[1][ "age"]);     輸出:37

          Object.keys()方法

          keys()方法返回給定對(duì)象的自身可枚舉字符串鍵屬性的數(shù)組。作為靜態(tài)方法的keys()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.keys(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          Object.values()方法

          values()方法返回給定對(duì)象的自身可枚舉字符串鍵屬性值的數(shù)組。作為靜態(tài)方法的values()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.values(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          Object.entries()方法

          該方法返回對(duì)象的可枚舉屬性的鍵值對(duì)數(shù)組。作為靜態(tài)方法的entries()方法使用Object類名調(diào)用。

          語(yǔ)法:Object.entries(obj)

          參數(shù)

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對(duì)象

          示例

          var obj={"name": "Natalie", "married": false, "age": 21, "city": "New York", "zip" : "10001", "awards": null};
          var keys=Object.keys(obj);
          var values=Object.values(obj);
          var entries=Object.entries(obj);
          console.log("Array of keys :");
          console.log(keys);
          console.log("Array of values :");
          console.log(values);
          console.log("Array of entries :");
          console.log(entries);

          輸出

          Array of keys :
          [ 'name', 'married', 'age', 'city', 'zip', 'awards' ]
          Array of values :
          [ 'Natalie', false, 21, 'New York', '10001', null ]
          Array of entries :
          [
               [ 'name', 'Natalie' ],
               [ 'married', false ],
               [ 'age', 21 ],
               [ 'city', 'New York' ],
               [ 'zip', '10001' ],
               [ 'awards', null ]
          ]

          for循環(huán)

          for循環(huán)重復(fù)執(zhí)行,直到指定的條件評(píng)估為false。

          語(yǔ)法:for (初始化; 條件; 表達(dá)式) {要執(zhí)行的代碼塊}

          參數(shù)

          必需/可選

          描述

          初始化

          必需

          在執(zhí)行代碼塊之前執(zhí)行一次

          條件

          必需

          執(zhí)行代碼塊的條件

          表達(dá)式

          必需

          在執(zhí)行代碼塊后每次執(zhí)行

          示例

          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          for(var i=0; i<obj.length; i++) {
                     console.log("Name:  " + obj[i]["name"]); //使用方括號(hào)表示法
                     console.log("Married Status:     " + obj[i].married); //使用點(diǎn)表示法
          }

          輸出

          輸出
          Name:     Natalie
          Married Status:  true
          Name:     David
          Married Status:  false
          Name:     Mark
          Married Status:  true

          for…in循環(huán)

          for...in語(yǔ)句遍歷對(duì)象的所有可枚舉字符串非符號(hào)屬性,包括繼承的可枚舉屬性。循環(huán)內(nèi)的代碼塊對(duì)每個(gè)屬性執(zhí)行一次。

          語(yǔ)法:for (item in object) {要執(zhí)行的代碼塊}

          參數(shù)

          必需/可選

          描述

          item

          必需

          用于遍歷屬性的變量

          object

          必需

          要遍歷的對(duì)象

          示例

          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          for(item in obj) {
                     console.log("Name:  " + obj[item]["name"]); //使用方括號(hào)表示法
                     console.log("Married Status:     " + obj[item].married); //使用點(diǎn)表示法
          }

          輸出

          Name:     Natalie
          Married Status:  true
          Name:     David
          Married Status:  false
          Name:     Mark
          Married Status:  true

          for…of循環(huán)

          for..of循環(huán)按順序操作來(lái)自可迭代對(duì)象的值。

          語(yǔ)法:array.forEach(iterable object中的變量) {語(yǔ)句}

          參數(shù)

          必需/可選

          描述

          變量

          必需

          對(duì)于每次迭代,下一個(gè)屬性的值被賦給變量。變量可以使用const、let或var聲明。

          可迭代對(duì)象

          必需

          循環(huán)操作的值的來(lái)源。

          Name: Natalie
          Married Status: true
          Name: David
          Married Status: false
          Name: Mark
          Married Status: true

          ## `forEach()`**方法** 
          
          `forEach()`方法對(duì)數(shù)組中的每個(gè)元素調(diào)用一個(gè)函數(shù)。它必須至少接受一個(gè)參數(shù),該參數(shù)表示數(shù)組的元素。
          
          *語(yǔ)法:*`array.forEach(function(currentValue, index, array), thisValue)`
          
          |  |  |  |
          | --- | --- | --- |
          | **參數(shù)**  | **必需/可選**  | **描述**  |
          | Function  | 必需 | 用于對(duì)數(shù)組每個(gè)元素運(yùn)行的函數(shù) |
          | currentvalue | 必需 | 當(dāng)前元素的值 |
          | index | 可選 | 當(dāng)前元素的索引 |
          | Array | 可選 | 當(dāng)前元素的數(shù)組 |
          | Thisvalue | 可選 | 作為this值傳遞給函數(shù)的值。默認(rèn)為undefined。 |
          
          ### 示例
          
          ```json
          var obj=[ { "name": "Natalie", "age": 21, "married": true }, { "name": "David", "age": 37, "married": false }, { "name": "Mark", "age": 43, "married": true } ];
          obj.forEach((item, index, arr)=> {
                 console.log("元素詳情:     " +index);
                 console.log("姓名:      "+arr[index]["name"]);
                 console.log("年齡:      "+item.age);
          });

          輸出

          元素詳情:  0
          姓名:      Natalie
          年齡:      21
          元素詳情:  1
          姓名:      David
          年齡:      37
          元素詳情:  2
          姓名:      Mark
          年齡:      43

          結(jié)論

          JSON通常用于服務(wù)器和Web應(yīng)用程序之間傳輸數(shù)據(jù)。JSON的靈活性、易解析性和簡(jiǎn)單性使軟件開發(fā)人員能夠在各種編程環(huán)境中高效地處理結(jié)構(gòu)化數(shù)據(jù)。

          ypeScript編程實(shí)踐

          一、JSON簡(jiǎn)介

          基本概念:JavaScript對(duì)象簡(jiǎn)譜(JSON, JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。JSON是基于ECMAScript的一個(gè)子集,以完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)的。

          簡(jiǎn)單概念:JSON是用于存儲(chǔ)和傳輸數(shù)據(jù)的格式。

          形式:文件(.json)或字符串

          二、JSON語(yǔ)法

          JSON是一個(gè)標(biāo)記符的序列,包含六個(gè)構(gòu)造字符([ ] { } : ,)、字符串、數(shù)字和三個(gè)字面名(true false null)。

          JSON是一個(gè)序列化的對(duì)象或數(shù)組。

          // 用JSON來(lái)表示兩本書
          [{
              "title": "JavaScript高級(jí)程序設(shè)計(jì)",
              "author": "Matt Frisbie",
              "price": 129.00,
              "count": 100,
              "ebook": false
          }, {
              "title": "JavaScript權(quán)威指南",
              "author": "David Flanagan",
              "price": 139.00,
              "count": 88,
              "ebook": true
          }]
          // [] 表示數(shù)組
          // {} 表示對(duì)象
          // key: value 鍵值對(duì)

          三、JSON和TypeScript(JavaScript)

          /* JavaScript對(duì)象 */
          let obj={ "name": "熱巴", "age": 18, "gender": "female" }
          /* JavaScript字符串,JSON字符串 */
          let json='{ "name": "熱巴", "age": 18, "gender": "female" }'
          
          /* JSON字符串轉(zhuǎn)JavaScript對(duì)象 */
          let obj=JSON.parse(json)
          /* JavaScript對(duì)象轉(zhuǎn)JSON字符串 */
          let json=JSON.stringify(obj)

          當(dāng)你想在你的代碼中找到一個(gè)錯(cuò)誤時(shí),這很難;當(dāng)你認(rèn)為你的代碼是不會(huì)有錯(cuò)誤時(shí),這就更難了。—Steve McConnell 《代碼大全》


          主站蜘蛛池模板: 中文字幕精品一区二区| 狠狠色婷婷久久一区二区三区| 中文字幕乱码一区二区免费| 夜夜精品无码一区二区三区| 亚洲av高清在线观看一区二区| 国产另类ts人妖一区二区三区| 真实国产乱子伦精品一区二区三区 | 中文字幕一区二区免费| 三上悠亚精品一区二区久久| 无码人妻精品一区二区三区99仓本 | 香蕉久久一区二区不卡无毒影院| 91成人爽a毛片一区二区| 免费视频精品一区二区| 激情久久av一区av二区av三区| 精品视频一区二区三区四区| 亚洲av高清在线观看一区二区| 国产在线一区二区在线视频| 亚洲视频在线一区二区三区| 国产无人区一区二区三区| 国产午夜福利精品一区二区三区 | 麻豆高清免费国产一区| 亚洲日本一区二区三区在线| 99精品国产一区二区三区2021| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲一区二区三区在线视频| 亚洲午夜一区二区电影院| 色系一区二区三区四区五区| 久久久综合亚洲色一区二区三区| 波多野结衣AV一区二区三区中文 | 国产精品亚洲一区二区麻豆 | 亚洲一区在线观看视频| 精品视频一区二区| 精品日产一区二区三区手机| 国产在线精品一区在线观看| 日韩精品无码中文字幕一区二区| 国产精品日韩一区二区三区| 久久久精品人妻一区二区三区蜜桃 | 亚洲性日韩精品国产一区二区| 亚洲国产美女福利直播秀一区二区| 亚洲Aⅴ无码一区二区二三区软件| 韩国一区二区视频|