Thanh tìm kiếm JavaScript JSON

JSON là một định dạng dữ liệu rất phổ biến để trao đổi dữ liệu giữa các ứng dụng hoặc nền tảng ngôn ngữ lập trình chéo

Hướng dẫn này giúp tìm kiếm trực tiếp trên các đối tượng dữ liệu JSON bằng cách sử dụng jquery và JavaScript. Chúng ta sẽ tìm kiếm các khóa chuỗi trong mảng của đối tượng JSON và hiển thị chúng theo bố cục HTML, giống như tìm kiếm trực tiếp trong danh sách bạn bè trên Facebook

Chúng tôi sẽ sử dụng hàm JavaScript và jQuery

superHeroes['members'][1]['powers'][2]
8 cốt lõi để tìm kiếm chuỗi trong các đối tượng mảng JSON. Bạn có thể sử dụng đoạn mã này từ bất kỳ đâu và với bất kỳ ứng dụng ngôn ngữ lập trình nào hỗ trợ JavaScript

Bạn cũng có thể xem các hướng dẫn khác về Đối tượng JSON,

  • Ví dụ jQuery jqGrid với dữ liệu JSON sử dụng Rest Service
  • Tìm kiếm trực tiếp trên Dữ liệu đối tượng JSON bằng jQuery
  • Cách xử lý/lặp lại các đối tượng JSON trong JavaScript
  • Đối tượng dữ liệu JSON Sử dụng và ví dụ sử dụng Javascript
quảng cáo

Các bước đơn giản để tạo Tìm kiếm trực tiếp bằng JSON và jQuery

Hãy tạo một dự án 'tìm kiếm trực tiếp' có thể được đặt ở bất kỳ đâu trên máy tính của bạn. Tạo tệp

superHeroes['members'][1]['powers'][2]
9 và viết mã tất cả các bước bên dưới vào tệp này

Bước 1. Chúng tôi cần một dữ liệu json mẫu để tìm kiếm trực tiếp. Chúng tôi đang lấy dữ liệu JSON mẫu bên dưới và thêm vào phần đầu của tệp

superHeroes['members'][1]['powers'][2]
9

var data = [  
   {  
      "id":"1",
      "employee_name":"Tiger Nixon",
      "employee_salary":"320800",
      "employee_age":"61",
      "profile_image":"default_profile.png"
   },
   {  
      "id":"2",
      "employee_name":"Garrett Winters",
      "employee_salary":"434343",
      "employee_age":"63",
      "profile_image":"default_profile.png"
   },
   {  
      "id":"3",
      "employee_name":"Ashton Cox",
      "employee_salary":"86000",
      "employee_age":"66",
      "profile_image":"default_profile.png"
   },
   {  
      "id":"4",
      "employee_name":"Cedric Kelly",
      "employee_salary":"433060",
      "employee_age":"22",
      "profile_image":"default_profile.png"
   }
];

Các đối tượng dữ liệu JSON được lưu trữ ở trên vào biến JavaScript

superHeroes.homeTown
superHeroes['active']
1. Chúng tôi sẽ tìm kiếm các chuỗi trong dữ liệu json này và trả về các đối tượng dữ liệu json đã lọc dưới dạng phản hồi

Thanh tìm kiếm JavaScript JSON

Chức năng cấp cao nhất trông như thế này

superHeroes.homeTown
superHeroes['active']
1

Để có được JSON, chúng tôi sử dụng API có tên là Fetch. API này cho phép chúng tôi thực hiện các yêu cầu mạng để truy xuất tài nguyên từ máy chủ thông qua JavaScript (e. g. hình ảnh, văn bản, JSON, thậm chí cả đoạn mã HTML), nghĩa là chúng tôi có thể cập nhật các phần nội dung nhỏ mà không phải tải lại toàn bộ trang

Trong chức năng của chúng tôi, bốn dòng đầu tiên sử dụng Fetch API để tìm nạp JSON từ máy chủ

  • chúng tôi khai báo biến
    superHeroes['members'][1]['powers'][2]
    
    5 để lưu trữ URL GitHub
  • chúng tôi sử dụng URL để khởi tạo một đối tượng
    superHeroes['members'][1]['powers'][2]
    
    6 mới
  • chúng tôi thực hiện yêu cầu mạng bằng hàm
    superHeroes['members'][1]['powers'][2]
    
    7 và điều này trả về một đối tượng
    superHeroes['members'][1]['powers'][2]
    
    8
  • chúng tôi truy xuất phản hồi dưới dạng JSON bằng cách sử dụng hàm
    superHeroes['members'][1]['powers'][2]
    
    9 của đối tượng
    superHeroes['members'][1]['powers'][2]
    
    8

Ghi chú. API

superHeroes['members'][1]['powers'][2]
7 không đồng bộ. Chúng ta sẽ tìm hiểu nhiều về các hàm không đồng bộ trong mô-đun tiếp theo, nhưng bây giờ, chúng ta sẽ chỉ nói rằng chúng ta cần thêm từ khóa
 
72 trước tên của hàm sử dụng API tìm nạp và thêm từ khóa
 
73 trước

Sau tất cả, biến

superHeroes.homeTown
superHeroes['active']
3 sẽ chứa đối tượng JavaScript dựa trên JSON. Sau đó, chúng tôi sẽ chuyển đối tượng đó tới hai lệnh gọi hàm - lệnh đầu tiên điền vào
 
75 với dữ liệu chính xác, trong khi lệnh thứ hai tạo một thẻ thông tin cho mỗi anh hùng trong đội và chèn nó vào
 
76

Bây giờ chúng ta đã truy xuất dữ liệu JSON và chuyển đổi nó thành một đối tượng JavaScript, hãy tận dụng nó bằng cách viết hai hàm mà chúng ta đã tham chiếu ở trên. Trước hết, hãy thêm định nghĩa hàm sau vào bên dưới đoạn mã trước

superHeroes.homeTown
superHeroes['active']
4

Ở đây, trước tiên chúng ta tạo một phần tử

 
77 với
 
78, đặt
 
79 của nó bằng thuộc tính
superHeroes.homeTown
superHeroes['active']
00 của đối tượng, sau đó nối nó vào tiêu đề bằng cách sử dụng
superHeroes.homeTown
superHeroes['active']
01. Sau đó, chúng tôi thực hiện một thao tác rất giống với một đoạn văn. tạo nó, đặt nội dung văn bản của nó và nối nó vào tiêu đề. Sự khác biệt duy nhất là văn bản của nó được đặt thành một mẫu chữ chứa cả thuộc tính
superHeroes.homeTown
superHeroes['active']
02 và
superHeroes.homeTown
superHeroes['active']
03 của đối tượng

Tiếp theo, thêm chức năng sau vào cuối mã để tạo và hiển thị các thẻ siêu anh hùng

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}
2

Để bắt đầu, chúng tôi lưu trữ thuộc tính

superHeroes.homeTown
superHeroes['active']
5 của đối tượng JavaScript trong một biến mới. Mảng này chứa nhiều đối tượng chứa thông tin cho từng anh hùng

Tiếp theo, chúng ta sử dụng a để lặp qua từng đối tượng trong mảng. Đối với mỗi người, chúng tôi

  1. Tạo một số yếu tố mới. một
    superHeroes.homeTown
    superHeroes['active']
    
    05, một
    superHeroes.homeTown
    superHeroes['active']
    
    06, ba
    superHeroes.homeTown
    superHeroes['active']
    
    07 và một
    superHeroes.homeTown
    superHeroes['active']
    
    08
  2. Đặt
    superHeroes.homeTown
    superHeroes['active']
    
    06 để chứa
    superHeroes.homeTown
    superHeroes['active']
    
    10 của anh hùng hiện tại
  3. Điền vào ba đoạn văn bằng
    superHeroes.homeTown
    superHeroes['active']
    
    11,
    superHeroes.homeTown
    superHeroes['active']
    
    12 của họ và một dòng có nội dung "Siêu năng lực. " để giới thiệu thông tin trong danh sách
  4. Lưu trữ thuộc tính
    superHeroes.homeTown
    superHeroes['active']
    
    9 trong một hằng số mới khác có tên là
    superHeroes.homeTown
    superHeroes['active']
    
    14 — hằng số này chứa một mảng liệt kê các siêu năng lực của anh hùng hiện tại
  5. Sử dụng một vòng lặp
    superHeroes.homeTown
    superHeroes['active']
    
    15 khác để lặp qua siêu năng lực của anh hùng hiện tại — đối với mỗi phần tử, chúng ta tạo một phần tử
    superHeroes.homeTown
    superHeroes['active']
    
    16, đặt siêu năng lực bên trong nó, sau đó đặt
    superHeroes.homeTown
    superHeroes['active']
    
    17 bên trong phần tử
    superHeroes.homeTown
    superHeroes['active']
    
    08 (
    superHeroes.homeTown
    superHeroes['active']
    
    19) bằng cách sử dụng
    superHeroes.homeTown
    superHeroes['active']
    
    01
  6. Điều cuối cùng chúng ta làm là nối các ________ 206, ________ 207 và ________ 208 vào bên trong
    superHeroes.homeTown
    superHeroes['active']
    
    05 (
    superHeroes.homeTown
    superHeroes['active']
    
    45), sau đó nối thêm
    superHeroes.homeTown
    superHeroes['active']
    
    05 vào bên trong
     
    76. Thứ tự các thứ được thêm vào rất quan trọng, vì đây là thứ tự chúng sẽ được hiển thị bên trong HTML

Ghi chú. Nếu bạn gặp khó khăn trong việc làm cho ví dụ hoạt động, hãy thử tham khảo các anh hùng đã hoàn thành của chúng tôi. mã nguồn html (cũng thấy nó chạy trực tiếp. )

Ghi chú. Nếu bạn gặp sự cố khi tuân theo ký hiệu dấu chấm/dấu ngoặc vuông mà chúng tôi đang sử dụng để truy cập đối tượng JavaScript, thì việc có các siêu anh hùng có thể hữu ích. json mở trong tab khác hoặc trình soạn thảo văn bản của bạn và tham khảo nó khi bạn xem JavaScript của chúng tôi. Bạn cũng nên tham khảo lại bài viết cơ bản về đối tượng JavaScript của chúng tôi để biết thêm thông tin về ký hiệu dấu chấm và dấu ngoặc

Cuối cùng, chúng ta cần gọi hàm

superHeroes.homeTown
superHeroes['active']
48 cấp cao nhất của mình

superHeroes.homeTown
superHeroes['active']
8

Ví dụ trên rất đơn giản về mặt truy cập đối tượng JavaScript, bởi vì chúng tôi đã chuyển đổi phản hồi mạng trực tiếp thành đối tượng JavaScript bằng cách sử dụng

superHeroes.homeTown
superHeroes['active']
49

Nhưng đôi khi chúng tôi không may mắn như vậy — đôi khi chúng tôi nhận được một chuỗi JSON thô và chúng tôi cần tự chuyển đổi nó thành một đối tượng. Và khi chúng tôi muốn gửi một đối tượng JavaScript trên mạng, chúng tôi cần chuyển đổi nó thành JSON (một chuỗi) trước khi gửi nó. May mắn thay, hai vấn đề này rất phổ biến trong quá trình phát triển web nên có sẵn một đối tượng JSON tích hợp sẵn trong trình duyệt, chứa hai phương thức sau

  • {
      "squadName": "Super hero squad",
      "homeTown": "Metro City",
      "formed": 2016,
      "secretBase": "Super tower",
      "active": true,
      "members": [
        {
          "name": "Molecule Man",
          "age": 29,
          "secretIdentity": "Dan Jukes",
          "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
        },
        {
          "name": "Madame Uppercut",
          "age": 39,
          "secretIdentity": "Jane Wilson",
          "powers": [
            "Million tonne punch",
            "Damage resistance",
            "Superhuman reflexes"
          ]
        },
        {
          "name": "Eternal Flame",
          "age": 1000000,
          "secretIdentity": "Unknown",
          "powers": [
            "Immortality",
            "Heat Immunity",
            "Inferno",
            "Teleportation",
            "Interdimensional travel"
          ]
        }
      ]
    }
    
    20. Chấp nhận một chuỗi JSON làm tham số và trả về đối tượng JavaScript tương ứng
  • {
      "squadName": "Super hero squad",
      "homeTown": "Metro City",
      "formed": 2016,
      "secretBase": "Super tower",
      "active": true,
      "members": [
        {
          "name": "Molecule Man",
          "age": 29,
          "secretIdentity": "Dan Jukes",
          "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
        },
        {
          "name": "Madame Uppercut",
          "age": 39,
          "secretIdentity": "Jane Wilson",
          "powers": [
            "Million tonne punch",
            "Damage resistance",
            "Superhuman reflexes"
          ]
        },
        {
          "name": "Eternal Flame",
          "age": 1000000,
          "secretIdentity": "Unknown",
          "powers": [
            "Immortality",
            "Heat Immunity",
            "Inferno",
            "Teleportation",
            "Interdimensional travel"
          ]
        }
      ]
    }
    
    21. Chấp nhận một đối tượng làm tham số và trả về chuỗi JSON tương đương

Bạn có thể thấy cái đầu tiên đang hoạt động trong Heroes-finished-json-parse của chúng tôi. html (xem mã nguồn) — điều này thực hiện chính xác như ví dụ mà chúng tôi đã xây dựng trước đó, ngoại trừ điều đó

  • chúng tôi truy xuất phản hồi dưới dạng văn bản thay vì JSON, bằng cách gọi phương thức
    {
      "squadName": "Super hero squad",
      "homeTown": "Metro City",
      "formed": 2016,
      "secretBase": "Super tower",
      "active": true,
      "members": [
        {
          "name": "Molecule Man",
          "age": 29,
          "secretIdentity": "Dan Jukes",
          "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
        },
        {
          "name": "Madame Uppercut",
          "age": 39,
          "secretIdentity": "Jane Wilson",
          "powers": [
            "Million tonne punch",
            "Damage resistance",
            "Superhuman reflexes"
          ]
        },
        {
          "name": "Eternal Flame",
          "age": 1000000,
          "secretIdentity": "Unknown",
          "powers": [
            "Immortality",
            "Heat Immunity",
            "Inferno",
            "Teleportation",
            "Interdimensional travel"
          ]
        }
      ]
    }
    
    22 của phản hồi
  • sau đó chúng tôi sử dụng
    {
      "squadName": "Super hero squad",
      "homeTown": "Metro City",
      "formed": 2016,
      "secretBase": "Super tower",
      "active": true,
      "members": [
        {
          "name": "Molecule Man",
          "age": 29,
          "secretIdentity": "Dan Jukes",
          "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
        },
        {
          "name": "Madame Uppercut",
          "age": 39,
          "secretIdentity": "Jane Wilson",
          "powers": [
            "Million tonne punch",
            "Damage resistance",
            "Superhuman reflexes"
          ]
        },
        {
          "name": "Eternal Flame",
          "age": 1000000,
          "secretIdentity": "Unknown",
          "powers": [
            "Immortality",
            "Heat Immunity",
            "Inferno",
            "Teleportation",
            "Interdimensional travel"
          ]
        }
      ]
    }
    
    20 để chuyển đổi văn bản thành đối tượng JavaScript

Đoạn mã chính ở đây

superHeroes['members'][1]['powers'][2]
4

Như bạn có thể đoán,

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}
21 hoạt động theo cách ngược lại. Hãy thử nhập từng dòng sau vào bảng điều khiển JavaScript của trình duyệt của bạn để xem nó hoạt động như thế nào

superHeroes.homeTown
superHeroes['active']
0

Ở đây chúng ta đang tạo một đối tượng JavaScript, sau đó kiểm tra xem nó chứa gì, sau đó chuyển đổi nó thành một chuỗi JSON bằng cách sử dụng

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}
21 — lưu giá trị trả về vào một biến mới — sau đó kiểm tra lại

Bạn đã đọc đến cuối bài viết này, nhưng liệu bạn có nhớ được thông tin quan trọng nhất không? . JSON

Trong bài viết này, chúng tôi đã cung cấp cho bạn hướng dẫn đơn giản về cách sử dụng JSON trong chương trình của bạn, bao gồm cách tạo và phân tích cú pháp JSON cũng như cách truy cập dữ liệu bị khóa bên trong nó. Trong bài viết tiếp theo, chúng ta sẽ bắt đầu xem xét JavaScript hướng đối tượng

Làm cách nào để tìm kiếm JSON bằng JavaScript?

Làm cách nào để tìm kiếm tệp JSON? .
$('#lấy dữ liệu'). click(function() { //get-data sẽ là id nút của bạn
var url="/Json/Người dùng. json";
$. getJSON(url, function (data) { //phương thức này lấy tệp json và tìm nạp dữ liệu bên trong nó
bảng điều khiển. nhật ký (dữ liệu);

Làm cách nào để thêm thanh tìm kiếm trong JavaScript?

Sử dụng JavaScript . onkeyup gọi chức năng này mỗi khi nhả phím trên bàn phím. Trước tiên, chúng tôi nhận đầu vào của mình bằng cách sử dụng getElementById. In the HTML code of search bar, we gave the input an id=”searchbar” and onkeyup we called, the function “search_animal”. onkeyup calls the function every time a key is released on the keyboard. We first get our input using getElementById.

Làm cách nào để tìm kiếm mảng JSON trong JavaScript?

Để lấy chỉ mục của phần tử tìm thấy trong mảng, findIndex() được sử dụng
Để lấy chỉ số giá trị, Array. nguyên mẫu. indexOf() được sử dụng
Để kiểm tra xem một giá trị có tồn tại trong mảng hay không, Array. nguyên mẫu. bao gồm() được sử dụng
Để tìm bất kỳ phần tử nào thỏa mãn chức năng kiểm tra được cung cấp, Array. nguyên mẫu

Làm cách nào để tìm kiếm khóa trong JSON?

Nhấp chuột phải vào văn bản đã chọn và chọn tùy chọn. Tìm khóa trong JSON .