如何使用 jQuery 從 JSON 物件中選擇值?


JSON 或 JavaScript 物件表示法是一種輕量級格式,用於 Web 應用程式和伺服器之間的資料交換。它提供了一個簡單易讀的結構,可以輕鬆地由機器解析和生成。JSON 通常用作 XML 的替代方案,因為它更緊湊且更易於使用。

在本文中,我們將瞭解如何使用不同的方法使用 jQuery 從 JSON 物件中選擇值。

什麼是 JSON 物件?

JSON 物件由用冒號分隔的一組鍵值對組成。這裡的鍵被稱為字串,值是某些有效的 JSON 資料型別,包括字串、數字、布林值、空值、物件或陣列。

現在讓我們看看 JSON 物件的語法。

JSON 資料是什麼樣的

下面給出的程式碼或語法是 JSON 物件的一個示例。

{
   "id": 1,
   "name": "Leanne Graham",
   "username": "Bret",
   "email": "Sincere@april.biz",
   "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
         "lat": "-37.3159",
         "lng": "81.1496"
      }
   },
   "phone": "1-770-736-8031 x56442",
   "website": "hildegard.org",
   "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
   }
}

上述 JSON 資料物件的語法包含各種屬性,例如“name”、“email”以及一些巢狀的“address”和“company”物件等。現在,有時我們需要從該物件中選擇值,但是如何選擇呢?藉助 jQuery,我們可以輕鬆地從 JSON 物件中獲取或選擇值。

使用 jQuery 從 JSON 物件中選擇值的方法

方法 1:使用 each() 或 append() 方法

使用 jQuery 從 JSON 資料中選擇值的第一種方法是使用 $.each() 函式。each 函式也稱為 append() 方法,因為這裡也使用 append() 方法來動態新增 HTML 元素。在此函式中,我們迴圈遍歷 JSON 資料物件,然後訪問它們的屬性。

請注意,此方法僅在 JSOB 資料物件包含少量巢狀級別時有效。它也可用於訪問任何巢狀級別的值。以下是使用 each() 方法的語法:

語法

$.each(dataObj, function(key, value) {
   $("#html-element-id").append("<p>" + key + ": " + value + "</p>");
});

在上述語法中,$.each() 方法首先迴圈遍歷 dataObj JSON 物件中的每個鍵值對,然後將其輸出顯示在 id 為“html-element-id”的 HTML 元素中。為了更簡潔地選擇有限型別的 資料,我們還可以使用方法內部的 if 語句來選擇一些特定的屬性。

示例

<!DOCTYPE html>
<html>
<head>
   <title>JSON Object Selection</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
   <h1>JSON data output</h1>
   <div id="data-output"></div>
   <script>
      // JSON data object
      var dataObj = {
         "name": "Tutorialspoint",
         "type": "Education",
         "address": {
            "state": "Delhi",
            "country": "India"
         }
      };
      $.each(dataObj, function (key, value) {
         $("#data-output").append("<p>" + key + ": " + JSON.stringify(value) + "</p>");
      });
   </script>
</body>
</html>

輸出

在此示例中,我們已將 each() 方法與 append() 一起使用來選擇 JSON 物件。這裡,$.each() 函式遍歷 dataObj JSON 物件中的每個鍵值對,並藉助 #data-output ID 將每個鍵值對記錄到 div 元素中。

方法 2:使用點表示法

使用 jQuery 從 JSON 資料中選擇值的第二種方法是使用點表示法。這裡,可以使用點表示法訪問 JSON 資料值,這允許使用者直接訪問資料物件的屬性。

它也可用於訪問任何巢狀級別的值。以下是使用點表示法方法的語法:

語法

$("#html-elment-id").append("<p>" + dataObj.name + "</p>");
$("#html-elment-id").append("<p>" + dataObj.address.state + "</p>");
$("#html-elment-id").append("<p>" + dataObj.type + "</p>");

在上述語法中,點表示法用於直接訪問“dataObj”JSON 物件的屬性。我們還在 id 為“html-element-id”的 HTML 元素中顯示輸出。

示例

<!DOCTYPE html>
<html>
<head>
   <title>JSON Object Selection</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
   <h1>JSON data output</h1>
   <div id="html-element-id"></div>
   <script>
      // JSON data object
      var dataObj = {
         "name": "Tutorialspoint",
         "type": "Education",
         "address": {
            "state": "Delhi",
            "country": "India"
         }
      };
      $("#html-element-id").append("<p>" + dataObj.name + "</p>");
      $("#html-element-id").append("<p>" + dataObj.type + "</p>");
      $("#html-element-id").append("<p>" + dataObj.address.state + "</p>");
   </script>
</body>
</html>

輸出

在此示例中,我們已使用點表示法來選擇 JSON 物件。我們已從 dataObj JSON 物件中的 address 中訪問了 name、type 和 state 的值。所有三個鍵都是物件陣列中的字串。訪問完這三個物件後,它們將藉助 #html-element-id ID 顯示在 <p> 元素中。

方法 3:使用括號表示法

使用 jQuery 從 JSON 資料中選擇值的第三種也是最後一種方法是使用括號表示法 []。這裡,可以使用括號表示法訪問 JSON 資料值,即我們使用 [] 表示法,允許使用者直接訪問資料物件的巢狀屬性。

當 JSON 物件的屬性名稱包含一些特殊字元或可能包含任何空格時,此方法很有用。以下是使用括號表示法方法的語法:

語法

$("#data-output").append("<p>" + dataObj["name"] + "</p>");
$("#data-output").append("<p>" + dataObj["type"] + "</p>");
$("#data-output").append("<p>" + dataObj["address"]["state"] + "</p>");

在上述語法中,括號表示法用於訪問“dataObj”JSON 物件的屬性。當我們想要訪問名稱中包含特殊字元或空格的屬性時,通常使用它。我們還在 id 為“html-element-id”的 HTML 元素中顯示輸出。

示例

<!DOCTYPE html>
<html>
<head>
   <title>JSON Object Selection</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
   <h1>JSON data output</h1>
   <div id="data-output"></div>
   <script>
      // JSON data object
      var dataObj = {
         "name": "Tutorialspoint",
         "type": "Education",
         "address": {
            "state": "Delhi",
            "country": "India"
         }
      };
      $("#data-output").append("<p>" + dataObj["name"] + "</p>");
      $("#data-output").append("<p>" + dataObj["type"] + "</p>");
      $("#data-output").append("<p>" + dataObj["address"]["state"] + "</p>");
   </script>
</body>
</html>

輸出

在此示例中,我們已使用括號表示法來選擇 JSON 物件。我們已從 dataObj JSON 物件中的 address 中訪問了 name、type 和 state 的值。所有三個鍵都是物件陣列中的字串。訪問完這三個物件後,它們將藉助 #html-element-id ID 使用 append() 方法顯示在 <p> 元素中。

結論

在本文中,我們瞭解瞭如何從 JSON 物件中選擇資料值。為了選擇值,我們討論了三種從 JSON 物件中提取資料的方法:each() 方法/append() 方法、點表示法和括號表示法。

要了解哪種方法好或不好,每種方法都有其自身的優缺點,這也取決於巢狀資料的級別和所需特定資料。如果開發人員採用這些方法來開發他們的應用程式,他們可以輕鬆有效地操作 JSON 資料並在 HTML 元素中動態顯示它。

更新於: 2023年5月10日

5K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告