2010-03-02 37 views
20

Tôi đang học JSON, nhưng tôi phát hiện ra rằng bạn có thể đặt cái gọi là "băm" vào JSON? Tôi có thể tìm ra băm là gì? Hoặc bạn có thể giải thích cho tôi biết băm là gì? Ngoài ra, một hashmap là gì? Tôi có kinh nghiệm về C++ và C#, và tôi đang học JS, Jquery và JSON.Chính xác thì hàm băm liên quan đến JSON là gì?

Trả lời

25

Một Hash là một mảng thưa thớt mà sử dụng các chuỗi tùy ý/đối tượng (tùy thuộc vào việc thực hiện, điều này khác nhau giữa các ngôn ngữ lập trình) chứ không phải là số nguyên đơn giản như chìa khóa.

Trong Javascript, bất kỳ đối tượng nào về mặt kỹ thuật là một băm (cũng được gọi là từ điển, liên kết-mảng, v.v ...).

Ví dụ:

var myObj = {}; // Same as = new Object(); 
    myObj['foo'] = 'bar'; 

    var myArr = []; // Same as = new Array(); 
    myArr[0] = 'foo'; 
    myArr[1] = 'bar'; 
    myArr['blah'] = 'baz'; // This will work, but is not recommended. 

Bây giờ, kể từ khi JSON được về cơ bản sử dụng các cấu trúc JS và một số hướng dẫn nghiêm ngặt để xác định dữ liệu di động, tương đương với myObj trên sẽ là:

{ "foo" : "bar" }; 

Hope this helps.

+0

thật tuyệt? Tôi đã overcomplicating mọi thứ. – Alex

+0

Lưu ý về dòng cuối cùng của bạn: bạn có thể đặt thuộc tính trên mảng như thể chúng là đối tượng - chúng * là * đối tượng và sẽ hoạt động như đối tượng trong trường hợp đó. – skeggse

+0

@CMC: cảm ơn. Đã cập nhật câu trả lời. –

11

Hash = dictionary.

Một băm:

{ "key1": "value1", "key2": "value2" } 
-1

Tôi băm là một số tìm kiếm ngẫu nhiên được tạo từ một phần dữ liệu và luôn giống nhau cho cùng một đầu vào. Ví dụ: nếu bạn tải xuống tệp từ một số trang web, chúng sẽ cung cấp băm dữ liệu để bạn có thể xác minh tải xuống của bạn không bị hỏng (điều này sẽ thay đổi giá trị băm). Một ứng dụng khác của băm là một bảng băm (hoặc bản đồ băm). Đây là cấu trúc dữ liệu liên kết rất nhanh, trong đó các băm được sử dụng để lập chỉ mục vào một mảng. std :: unorderd_map trong C++ là một ví dụ về điều này. Bạn có thể lưu trữ một băm bằng JSON dưới dạng chuỗi ví dụ như "AB34F553" và sử dụng để xác minh dữ liệu. JSON cũng hỗ trợ các phần tử kiểu từ điển. Mọi người có thể tham khảo các bảng này dưới dạng bảng băm, nhưng điều này sẽ không chính xác về mặt kỹ thuật vì không có triển khai cấu trúc dữ liệu cụ thể được liên kết với chính dữ liệu JSON.

Các vấn đề liên quan