JSON có thể có các khóa trùng lặp Python không?

Bài viết này sẽ chỉ cho bạn, thông qua một loạt ví dụ, cách khắc phục sự cố Cách cấu trúc bản đồ từ Json có khóa trùng lặp với giải pháp mã xảy ra trong mã

for (JsonElement array : jsonObject.get("my_key").getAsJsonArray()) {
    if (array.getAsJsonArray().size() == 2) {
      String value = array.getAsJsonArray().get(VALUE).getAsString();
      long key = array.getAsJsonArray().get(KEY).getAsLong();
      progress.completedActivities.put(key, value);
    }
  } 

Có nhiều cách tiếp cận khác nhau để giải quyết cùng một vấn đề Cách cấu trúc một bản đồ từ Json có các khóa trùng lặp với các giải pháp mã. Phần sau đây thảo luận về nhiều giải pháp tiềm năng khác

@Provides @Singleton Gson provideGson() {
return new GsonBuilder()
    .registerTypeAdapter(MyClass.class, new MyClass())
    .create();
}

Sử dụng nhiều ví dụ khác nhau, chúng ta đã học cách giải bài Cách cấu trúc bản đồ từ Json có khóa trùng lặp bằng giải pháp mã

JSON có thể chứa các khóa trùng lặp không?

câu trả lời ngắn. Có nhưng không được khuyến khích. Câu trả lời dài. Nó phụ thuộc vào những gì bạn gọi là hợp lệ [ECMA-404][1] "Cú pháp trao đổi dữ liệu JSON" không nói bất cứ điều gì về các tên (khóa) trùng lặp

Bản đồ có chấp nhận các khóa trùng lặp không?

Các khóa trùng lặp không được phép trong Bản đồ. Về cơ bản, Giao diện Bản đồ có hai lớp triển khai HashMap và TreeMap, điểm khác biệt chính là TreeMap duy trì thứ tự của các đối tượng nhưng HashMap sẽ không. HashMap cho phép giá trị null và khóa null. 20-Apr-2022

JSON có thể có 2 khóa có cùng tên không?

Không có "lỗi" nếu bạn sử dụng nhiều khóa có cùng tên, nhưng trong JSON, khóa cuối cùng có cùng tên là khóa sẽ được sử dụng. Trong trường hợp của bạn, khóa "tên" sẽ tốt hơn nếu chứa một mảng làm giá trị của nó, thay vì có một số khóa "tên"

TreeMap có thể chứa các khóa trùng lặp không?

TreeMap không thể chứa các khóa trùng lặp. TreeMap không thể chứa khóa null. Tuy nhiên, nó có thể có giá trị null. 30-Jul-2019

Các khóa JSON có cần phải là duy nhất không?

Các khóa JSON nằm bên trái dấu hai chấm. Chúng cần được đặt trong dấu ngoặc kép, như trong "key" và có thể là bất kỳ chuỗi hợp lệ nào. Trong mỗi đối tượng, các khóa cần phải là duy nhất. 08-Dec-2016

Các khóa JSON có nên là duy nhất không?

Các khóa chỉ phải là duy nhất trong cùng một phạm vi. Ở đây, mỗi đối tượng là một phạm vi riêng biệt, vì vậy JSON vẫn hợp lệ, ngay cả khi nó không làm những gì người dùng dự định. 10-Jan-2022

Một bản đồ có thể có nhiều khóa không?

Lớp MultiKeyMapA Triển khai bản đồ sử dụng nhiều khóa để ánh xạ giá trị. Lớp này là cách hiệu quả nhất để sử dụng nhiều khóa để ánh xạ tới một giá trị

Cấu trúc dữ liệu nào có thể có các khóa trùng lặp?

Một trong những cấu trúc dữ liệu này được gọi là Multimap và nó cho phép chúng tôi lưu trữ các khóa trùng lặp theo cách thanh lịch hơn. 01-Aug-2017

Làm cách nào để tìm các khóa trùng lặp trên bản đồ?

Các khóa là duy nhất sau khi được thêm vào HashMap , nhưng bạn có thể biết liệu khóa tiếp theo mà bạn sắp thêm đã có hay chưa bằng cách truy vấn bản đồ băm bằng containsKey(. ) hoặc lấy (. ) phương pháp. 28-Jan-2013

JSON Stringify có xóa trùng lặp không?

Chúng ta có thể sử dụng JSON. phương thức stringify để chuyển đổi một đối tượng JavaScript đơn giản thành một chuỗi. Điều này cho phép chúng tôi kiểm tra tất cả các thuộc tính cùng một lúc thay vì mã hóa kiểm tra cứng như chúng tôi đã làm trong ví dụ trước. để xóa mục trùng lặp bằng cách sử dụng JSON

Tôi còn khá mới đối với OpenRefine và tôi đã cố gắng phân tích cú pháp thông tin "Tên bản ngữ" trong các loại tệp này, thông tin này được lặp lại nhiều lần

{"apiVersion":"0.1","lastUpdatedDate":"2017-03-07","results":[{"searchedTerm":"Acer negundo","numMatches":1,"matches":[{"taxonID":9206,"scientificName":"Acer negundo Linnaeus","scientificNameAuthorship":"Linnaeus","canonicalName":"Acer negundo","taxonRank":"species","taxonomicAssertions":[{"acceptedNameUsage":"Acer negundo Linnaeus","acceptedNameUsageID":9206,"nameAccordingTo":"FNA Editorial Committee. in prep. Flora of North America north of Mexico. Volume 13. Magnoliophyta: Geraniaceae to Apiaceae. Oxford University Press, New York.","nameAccordingToID":"","taxonomicStatus":"accepted","parentNameUsageID":769,"higherClassification":"Equisetopsida;Magnoliidae;Rosanae;Sapindales;Sapindaceae;Hippocastanoideae;Acereae;Acer"}],"vernacularNames":[{"vernacularName":"érable à Giguère","language":"fr","source":"Darbyshire S.J., M. Favreau & M. Murray (revu et augmenté par). 2000. Noms populaires et scientifiques des plantes nuisibles du Canada. Agriculture et Agroalimentaire Canada. Publication 1397. 132 pp.","preferredName":true},{"vernacularName":"Manitoba maple","language":"en","source":"Farrar, J.L. 1996. Les Arbres du Canada. Fides et Service canadien des forêts. 502 pp.","preferredName":true},{"vernacularName":"ash-leaved maple","language":"en","source":"Farrar, J.L. 1996. Les Arbres du Canada. Fides et Service canadien des forêts. 502 pp.","preferredName":false},{"vernacularName":"aulne-buis","language":"fr","source":"Louis-Marie, P. 1953. Flore-Manuel de la province de Québec. 2ième éd. Institut agricole d'Oka. 323 pp.","preferredName":false},{"vernacularName":"box-elder","language":"en","source":"Farrar, J.L. 1996. Les Arbres du Canada. Fides et Service canadien des forêts. 502 pp.","preferredName":false},{"vernacularName":"box-elder maple","language":"en","source":"ITIS. 2010. Integrated Taxonomic Information System (ITIS). http://www.itis.gov (consulted 2010)","preferredName":false},{"vernacularName":"California box-elder","language":"en","source":"ITIS. 2010. Integrated Taxonomic Information System (ITIS). http://www.itis.gov (consulted 2010)","preferredName":false},{"vernacularName":"érable à feuilles composées","language":"fr","source":"Farrar, J.L. 1996. Les Arbres du Canada. Fides et Service canadien des forêts. 502 pp.","preferredName":false},{"vernacularName":"érable à feuilles de Frêne","language":"fr","source":"Louis-Marie, P. 1953. Flore-Manuel de la province de Québec. 2ième éd. Institut agricole d'Oka. 323 pp.","preferredName":false},{"vernacularName":"érable argilière","language":"fr","source":"Marie-Victorin, Fr. 1995. Flore laurentienne. 3e éd. Mise à jour et annotée par L. Brouillet, S.G. Hay, I. Goulet, M. Blondeau, J. Cayouette et J. Labrecque. Gaétan Morin éditeur. 1093 pp.","preferredName":false},{"vernacularName":"érable négondo","language":"fr","source":"Marie-Victorin, Fr. 1995. Flore laurentienne. 3e éd. Mise à jour et annotée par L. Brouillet, S.G. Hay, I. Goulet, M. Blondeau, J. Cayouette et J. Labrecque. Gaétan Morin éditeur. 1093 pp.","preferredName":false},{"vernacularName":"érable négundo","language":"fr","source":"Grandtner, M.M. 2005. Elsevier's Dictionnary of Trees. Volume 1. North America. Elsevier, Amsterdam. 1493 pp.","preferredName":false},{"vernacularName":"plaine à Giguère","language":"fr","source":"Louis-Marie, P. 1953. Flore-Manuel de la province de Québec. 2ième éd. Institut agricole d'Oka. 323 pp.","preferredName":false},{"vernacularName":"three-leaved maple","language":"en","source":"ITIS. 2010. Integrated Taxonomic Information System (ITIS). http://www.itis.gov (consulted 2010)","preferredName":false},{"vernacularName":"western box-elder","language":"en","source":"ITIS. 2010. Integrated Taxonomic Information System (ITIS). http://www.itis.gov (consulted 2010)","preferredName":false}],"distribution":[{"locationID":"ISO 3166-2:CA-AB","locality":"AB","establishmentMeans":"native","occurrenceStatus":"native"},{"locationID":"ISO 3166-2:CA-MB","locality":"MB","establishmentMeans":"native","occurrenceStatus":"native"},{"locationID":"ISO 3166-2:CA-NT","locality":"NT","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-NS","locality":"NS","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-YT","locality":"YT","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-QC","locality":"QC","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-ON","locality":"ON","establishmentMeans":"native","occurrenceStatus":"native"},{"locationID":"ISO 3166-2:CA-BC","locality":"BC","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-SK","locality":"SK","establishmentMeans":"native","occurrenceStatus":"native"},{"locationID":"ISO 3166-2:CA-PE","locality":"PE","establishmentMeans":"introduced","occurrenceStatus":"introduced"},{"locationID":"ISO 3166-2:CA-NB","locality":"NB","establishmentMeans":"introduced","occurrenceStatus":"introduced"}]}]}]}

Tôi có thể truy xuất tất cả các tên bản địa bằng biểu thức sau. forEach(giá trị. parseJson(). kết quả[0]. trận đấu[0]. localNames,v,v. tên tiếng địa phương). tham gia(", ")

Tuy nhiên, chỉ có thể truy xuất tên bản địa có khóa "preferredName". thật?

Tôi nghĩ đó là biểu thức IF hoặc một loại bộ lọc nào đó, nhưng tôi không chắc nó nên được chỉ định như thế nào với tệp có cấu trúc JSON này

JSON có cho phép các khóa trùng lặp không?

Chúng ta có thể có các khóa trùng lặp trong một đối tượng JSON và nó vẫn hợp lệ.

JSON có thể có nhiều khóa có cùng tên không?

Không có "lỗi" nếu bạn sử dụng nhiều khóa có cùng tên , nhưng trong JSON, khóa cuối cùng có cùng tên là khóa sẽ . Trong trường hợp của bạn, khóa "tên" sẽ tốt hơn nếu chứa một mảng làm giá trị của nó, thay vì có một số khóa "tên".

Bạn có thể có các khóa trùng lặp trong Python không?

Từ điển trong Python . Không cho phép sao chép khóa .

JSON có yêu cầu các khóa duy nhất không?

JSON là một cách tổ chức và ghi dữ liệu. Bản thân JSON không có phương tiện để thực thi tính duy nhất , tuy nhiên, JSON được viết đúng cách không được có các khóa trùng lặp trong cùng phạm vi và đối tượng.