Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 久久国产精品免费网站,精品国产91久久久久久久,精品国产免费第一区二区三区日韩

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript中處理JSON的全面指南

          JavaScript中處理JSON的全面指南

          SON對象是什么?

          JSON代表JavaScript對象表示法,是一種基于JavaScript對象語法的結構化數據的標準文本格式。JSON僅定義了兩種數據結構:對象和數組。JSON對象是由花括號括起來的鍵/值對組成的數據類型。JSON數組是值的列表。當數據從服務器發送到網頁或在文件或數據庫中存儲數據時,通常會使用JSON對象。JSON與JavaScript對象文字語法非常相似,但可以獨立于JavaScript使用。許多編程環境支持讀取和生成JSON。

          JSON對象的特點

          • 它們以逗號分隔的鍵/值對形式編寫。鍵是用雙引號括起來的字符串,值必須是以下JSON數據類型字符串數字對象數組布爾值空值
          • 它們由花括號{}括起來。花括號也可以用于在對象內部嵌套對象,從而創建分層結構。
          • 數組用方括號[]括起來,它們的值用逗號(,)分隔。數組中的每個值可以是不同的類型,包括另一個數組或對象。
          • 它們區分大小寫,這意味著鍵和值在拼寫和大小寫上必須完全匹配。
          • 它們不允許尾隨逗號。簡單來說,花括號外部或雙引號內部不應該有任何不屬于鍵/值對的文本。
          • 它們不允許注釋。

          JSON提供了幾個優點,使其成為表示結構化數據的熱門選擇:

          • 簡單易讀:JSON簡單直觀,易于理解。與XML等更冗長的格式不同,JSON相對容易閱讀。其簡潔的語法允許高效的數據表示。
          • 解析簡便:JSON的解析比XML更簡單快速。
          • 靈活性:JSON支持各種數據類型和對象層次結構,并且關系可以在傳輸過程中保持并在接收端適當地重新組裝。
          • 廣泛應用:大多數現代API接受JSON請求并發出JSON響應,使其成為系統之間數據交換的通用格式。

          JSON對象示例


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

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

          JSON對象數組:[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]

          解析JSON對象

          解析是將JSON對象轉換為本機JavaScript對象的方法。

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

          語法:JSON.parse(string, function)

          參數

          必需/可選

          描述

          字符串

          必需

          以JSON格式編寫的字符串

          Reviver函數

          可選

          一個接受鍵和值作為參數并返回修改后的值或undefined以刪除屬性的函數。對每個項目調用該函數。任何嵌套對象在父對象之前轉換。

          示例

          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對象轉換為字符串。在將數據發送到Web服務器時,數據必須是字符串。JSON.stringify()也適用于數組。

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

          參數

          必需/可選

          描述

          Obj

          必需

          要轉換為字符串的值

          Replacer

          可選

          用于轉換結果的函數或數組。對每個項目調用replacer。

          Space

          可選

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

          示例

          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}

          /*為每個空格插入單詞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對象導航

          可以使用點(.)或方括號([])表示法導航到其屬性并訪問它們的值。

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

          Object.keys()方法

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

          語法:Object.keys(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          Object.values()方法

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

          語法:Object.values(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          Object.entries()方法

          該方法返回對象的可枚舉屬性的鍵值對數組。作為靜態方法的entries()方法使用Object類名調用。

          語法:Object.entries(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          示例

          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循環

          for循環重復執行,直到指定的條件評估為false。

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

          參數

          必需/可選

          描述

          初始化

          必需

          在執行代碼塊之前執行一次

          條件

          必需

          執行代碼塊的條件

          表達式

          必需

          在執行代碼塊后每次執行

          示例

          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"]); //使用方括號表示法
                     console.log("Married Status:     " + obj[i].married); //使用點表示法
          }

          輸出

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

          for…in循環

          for...in語句遍歷對象的所有可枚舉字符串非符號屬性,包括繼承的可枚舉屬性。循環內部的代碼塊對每個屬性執行一次。

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

          參數

          必需/可選

          描述

          item

          必需

          用于迭代屬性的變量

          object

          必需

          要迭代的對象

          示例

          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"]); //使用方括號表示法
                     console.log("Married Status:     " + obj[item].married); //使用點表示法
          }

          輸出

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

          for…of循環

          for..of循環按順序操作來自可迭代對象的值。

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

          參數

          必需/可選

          描述

          Variable

          必需

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

          Iterable object

          必需

          循環操作的值來源。

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

          ## `forEach()`**方法** 
          
          `forEach()`方法對數組中的每個元素調用一個函數。它必須至少接受一個參數,該參數表示數組的元素。
          
          *語法:*`array.forEach(function(currentValue, index, array), thisValue)`
          
          |  |  |  |
          | --- | --- | --- |
          | **參數**  | **必需/可選**  | **描述**  |
          | Function  | 必需 | 用于對數組每個元素運行的函數 |
          | currentvalue | 必需 | 當前元素的值 |
          | index | 可選 | 當前元素的索引 |
          | Array | 可選 | 當前元素的數組 |
          | Thisvalue | 可選 | 作為this值傳遞給函數的值。默認為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

          結論

          JSON通常用于在服務器和Web應用程序之間傳輸數據。JSON的靈活性、易解析性和簡單性使軟件開發人員能夠在各種編程環境中高效地處理結構化數據。

          SON對象是什么?

          JSON代表JavaScript對象表示法,是一種基于JavaScript對象語法的結構化數據的標準文本格式。JSON僅定義了兩種數據結構:對象和數組。JSON對象是由花括號括起來的鍵/值對組成的數據類型。JSON數組是值的列表。當數據從服務器發送到網頁或數據存儲在文件或數據庫中時,通常會使用JSON對象。JSON與JavaScript對象文字語法非常相似,但可以獨立于JavaScript使用。許多編程環境支持讀取和生成JSON。

          JSON對象的特點

          • 它們以逗號分隔的鍵/值對形式編寫。鍵是用雙引號括起來的字符串,值必須是以下JSON數據類型字符串數字對象數組布爾值空值
          • 它們由花括號{}括起來。花括號也可以用于在對象內部嵌套對象,從而創建分層結構。
          • 數組用方括號[]括起來,它們的值用逗號(,)分隔。數組中的每個值可以是不同類型,包括另一個數組或對象。
          • 它們區分大小寫,這意味著鍵和值在拼寫和大小寫上必須完全匹配。
          • 它們不允許尾隨逗號。簡單來說,花括號外部或雙引號內部不應有任何不屬于鍵/值對的文本。
          • 它們不允許注釋。

          JSON提供了幾個優點,使其成為表示結構化數據的流行選擇:

          • 簡單易讀:JSON簡單直觀,易于理解。與XML等更冗長的格式不同,JSON相對容易閱讀。其簡潔的語法允許高效的數據表示。
          • 解析簡便:JSON比XML更簡單、更快速。
          • 靈活性:JSON支持各種數據類型和對象層次結構,并且關系可以在傳輸過程中保持并在接收端適當地重新組裝。
          • 廣泛應用:大多數現代API接受JSON請求并發出JSON響應,使其成為系統之間數據交換的通用格式。

          JSON對象示例


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

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

          JSON對象數組:[ { "name": "Natalie", "age": 21 }, { "name": "David", "age": 37 }, { "name": "Mark", "age": 43 } ]

          解析JSON對象

          解析是將JSON對象轉換為本機JavaScript對象的方法。

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

          語法:JSON.parse(string, function)

          參數

          必需/可選

          描述

          字符串

          必需

          以JSON格式編寫的字符串

          Reviver函數

          可選

          一個接受鍵和值作為參數并返回修改后的值或undefined以刪除屬性的函數。對每個項目調用該函數。任何嵌套對象在父對象之前轉換。

          示例

          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對象轉換為字符串。在將數據發送到Web服務器時,數據必須是字符串。JSON.stringify()也適用于數組。

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

          參數

          必需/可選

          描述

          Obj

          必需

          要轉換為字符串的值

          Replacer

          可選

          用于轉換結果的函數或數組。對每個項目調用replacer。

          Space

          可選

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

          示例

          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}

          /*為每個空格插入單詞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對象導航

          可以使用點(.)或方括號([])表示法導航到其屬性并訪問它們的值。

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

          Object.keys()方法

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

          語法:Object.keys(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          Object.values()方法

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

          語法:Object.values(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          Object.entries()方法

          該方法返回對象的可枚舉屬性的鍵值對數組。作為靜態方法的entries()方法使用Object類名調用。

          語法:Object.entries(obj)

          參數

          必需/可選

          描述

          obj

          必需

          要返回其可枚舉屬性的對象

          示例

          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循環

          for循環重復執行,直到指定的條件評估為false。

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

          參數

          必需/可選

          描述

          初始化

          必需

          在執行代碼塊之前執行一次

          條件

          必需

          執行代碼塊的條件

          表達式

          必需

          在執行代碼塊后每次執行

          示例

          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"]); //使用方括號表示法
                     console.log("Married Status:     " + obj[i].married); //使用點表示法
          }

          輸出

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

          for…in循環

          for...in語句遍歷對象的所有可枚舉字符串非符號屬性,包括繼承的可枚舉屬性。循環內的代碼塊對每個屬性執行一次。

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

          參數

          必需/可選

          描述

          item

          必需

          用于遍歷屬性的變量

          object

          必需

          要遍歷的對象

          示例

          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"]); //使用方括號表示法
                     console.log("Married Status:     " + obj[item].married); //使用點表示法
          }

          輸出

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

          for…of循環

          for..of循環按順序操作來自可迭代對象的值。

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

          參數

          必需/可選

          描述

          變量

          必需

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

          可迭代對象

          必需

          循環操作的值的來源。

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

          ## `forEach()`**方法** 
          
          `forEach()`方法對數組中的每個元素調用一個函數。它必須至少接受一個參數,該參數表示數組的元素。
          
          *語法:*`array.forEach(function(currentValue, index, array), thisValue)`
          
          |  |  |  |
          | --- | --- | --- |
          | **參數**  | **必需/可選**  | **描述**  |
          | Function  | 必需 | 用于對數組每個元素運行的函數 |
          | currentvalue | 必需 | 當前元素的值 |
          | index | 可選 | 當前元素的索引 |
          | Array | 可選 | 當前元素的數組 |
          | Thisvalue | 可選 | 作為this值傳遞給函數的值。默認為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

          結論

          JSON通常用于服務器和Web應用程序之間傳輸數據。JSON的靈活性、易解析性和簡單性使軟件開發人員能夠在各種編程環境中高效地處理結構化數據。

          ypeScript編程實踐

          一、JSON簡介

          基本概念:JavaScript對象簡譜(JSON, JavaScript Object Notation)是一種輕量級的數據交換格式。JSON是基于ECMAScript的一個子集,以完全獨立于編程語言的文本格式來存儲和表示數據的。

          簡單概念:JSON是用于存儲和傳輸數據的格式。

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

          二、JSON語法

          JSON是一個標記符的序列,包含六個構造字符([ ] { } : ,)、字符串、數字和三個字面名(true false null)。

          JSON是一個序列化的對象或數組。

          // 用JSON來表示兩本書
          [{
              "title": "JavaScript高級程序設計",
              "author": "Matt Frisbie",
              "price": 129.00,
              "count": 100,
              "ebook": false
          }, {
              "title": "JavaScript權威指南",
              "author": "David Flanagan",
              "price": 139.00,
              "count": 88,
              "ebook": true
          }]
          // [] 表示數組
          // {} 表示對象
          // key: value 鍵值對

          三、JSON和TypeScript(JavaScript)

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

          當你想在你的代碼中找到一個錯誤時,這很難;當你認為你的代碼是不會有錯誤時,這就更難了。—Steve McConnell 《代碼大全》


          主站蜘蛛池模板: 国产精品成人99一区无码| 无码精品人妻一区二区三区人妻斩| 日韩免费视频一区| 国产精品电影一区二区三区| 无码人妻精品一区二区蜜桃百度| 国产福利一区二区三区在线观看| 日韩有码一区二区| 欧洲精品一区二区三区| 中文字幕一区二区精品区| 久久久久久免费一区二区三区| 国产在线不卡一区| 日韩视频在线一区| 日韩美女视频一区| 成人久久精品一区二区三区| 亚洲成在人天堂一区二区| 精品一区二区久久久久久久网站| 亚洲一区二区三区在线视频| 一区精品麻豆入口| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产精品盗摄一区二区在线| 亚洲AV无码片一区二区三区| 亚洲AV日韩综合一区| 狠狠做深爱婷婷久久综合一区| 伊人色综合网一区二区三区| 亚洲一区二区三区亚瑟| 亚洲大尺度无码无码专线一区| 中文精品一区二区三区四区| 糖心vlog精品一区二区三区| 国产无吗一区二区三区在线欢| 精品国产精品久久一区免费式| 日本一区中文字幕日本一二三区视频| 无码人妻精一区二区三区| 精品国产日韩亚洲一区91| 国产伦精品一区二区三区精品 | 熟女性饥渴一区二区三区| 国产一区二区女内射| 精品人妻码一区二区三区| 国产成人精品久久一区二区三区| 精品无码国产一区二区三区51安| 在线观看精品视频一区二区三区| 日韩在线观看一区二区三区|