Gönderme ve cevaplama, çünkü standartlar hakkında çok sayıda eski fikir ve karışıklık var. Aralık 2017 itibariyle iki rakip standart vardır:
RFC 8259 - https://tools.ietf.org/html/rfc8259
ECMA-404 - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
json.org ECMA-404 olduğuna işaret standart, ancak bu site bir otorite olmak görünmüyor. Onun 'adil Burada önemli olanı ECMA'yı otorite, (benzersiz anahtarlar ile ilgili olarak) standartlarına arasındaki tek fark dikkate düşünürken RFC 8259 tuşları diyor ki gereken benzersiz olması ve ECMA-404 onlar diyor gerekmez olmak benzersiz.
RFC 8259:
"Bir nesnenin içindeki isimler benzersiz olmalıdır."
Bunun gibi tüm büyük harflerde "olması gereken" kelimesi, RFC dünyasında, başka bir standartta (BCP 14, RFC 2119 - https://tools.ietf.org/html/rfc2119 ) özel olarak tanımlanan bir anlama sahiptir ,
- Bu kelime veya "ÖNERİLEN" sıfatının, belirli durumlarda belirli bir öğeyi göz ardı etmek için geçerli nedenler olabileceği anlamına gelir, ancak farklı bir ders seçilmeden önce tüm çıkarımların anlaşılması ve dikkatle tartılması gerekir.
ECMA-404:
"JSON sözdizimi, ad olarak kullanılan dizelere herhangi bir kısıtlama getirmez, ad dizelerinin benzersiz olmasını gerektirmez ve ad / değer çiftlerinin sırasına herhangi bir önem vermez."
Yani, nasıl dilerseniz dilerseniz sözdizimsel olarak geçerli JSON .
RFC 8259'da benzersiz anahtar öneri için verilen neden,
İsimleri benzersiz olan bir nesne, bu nesneyi alan tüm yazılım uygulamalarının ad-değer eşlemeleri üzerinde anlaşmaya varması anlamında birlikte çalışabilir. Bir nesnenin içindeki adlar benzersiz olmadığında, böyle bir nesneyi alan yazılımın davranışı tahmin edilemez. Birçok uygulama yalnızca soyadı / değer çiftini rapor eder. Diğer uygulamalar bir hatayı bildirir veya nesneyi ayrıştırmaz ve bazı uygulamalar yinelemeler dahil tüm ad / değer çiftlerini bildirir.
Başka bir deyişle, RFC 8259 bakış açısından geçerlidir, ancak ayrıştırıcınız engel olabilir ve eğer varsa, değerin bu anahtarla eşleştirileceği konusunda herhangi bir söz yoktur. ECMA-404 bakış açısından (şahsen otorite olarak alacağım) geçerli. Benim için bu ayrıştırmayı reddeden herhangi bir ayrıştırıcının bozuk olduğu anlamına gelir. En azından bu standartların her ikisine göre ayrıştırılmalıdır. Ancak yerel seçim nesnenize nasıl dönüştüğü, her durumda, benzersiz anahtarlar veya değil, tamamen çevreye ve duruma bağlıdır ve bunların hiçbiri başlangıçta standart değildir.
Dictionary<string, string>