Ben RFC 4627 okuyordum ve aşağıdaki geçerli JSON olup olmadığını ben çözemiyorum. Bu minimalist JSON metni düşünün:JSON Unicode çıkış dizisi - küçük harf mi yoksa değil mi?
["\u005c"]
sorun küçükc
olduğunu.
RFC metne göre, izin verilir:
Herhangi bir karakter çıkışı yapılabilir. Karakter Basic Çok Dilli Düzlemde (U + 0000 ile U + FFFF) ise, altı karakterlik bir sıra olarak temsil edilen olabilir: ters bir solidus, ardından küçük harf harfi ile , ardından dört onaltılık basamak Bu , karakterin kod noktasını kodlar. F büyük veya küçük olabilir da onaltılık harfleri. Bu nedenle, örneğin, sadece tek bir ters sertleşme karakter aynı "\ u005C" olarak ifade edilebilir.
(vurgu madeni)
sorun RFC da bu amaç için dilbilgisi içerir ki: HEXDIG
HEXDIG = DIGIT/"A"/"B"/"C"/"D"/"E"/"F"
olarak belirtilen RFC 4234 de tanımlandığı
char = unescaped/
escape (
%x22/ ; " quotation mark U+0022
%x5C/ ; \ reverse solidus U+005C
%x2F/ ;/ solidus U+002F
%x62/ ; b backspace U+0008
%x66/ ; f form feed U+000C
%x6E/ ; n line feed U+000A
%x72/ ; r carriage return U+000D
%x74/ ; t tab U+0009
%x75 4HEXDIG) ; uXXXX U+XXXX
yalnızca büyük harfleri içerir
.
FWIW, neyden Ben en çok JSON ayrıştırıcıları hem büyük ve küçük harfleri kabul araştırdı.
Soru (lar): aslında doğru nedir? Bir çelişki var mı ve RFC'deki dilbilgisi düzeltilmeli mi?
kesinlikle olamaz aksi takdirde tanımlamak edemedi "a" '' gibi dilbilgisi tüm karakterlerin kullanılması ** herhangi ** harfe duyarlı dil –
@DanielFrey !?: Ben öyle düşünmüyorum - o RFC ayrı bir parçasıdır: " Kural isimleri düzenlemek sayesinde artık mantıklı. –
1 Ben düzenlemeden önce ilk yorum yazdı. gerçi açık olmaktan uzak olduğunu kabul. "harf duyarsız ve evet, o en net spec değil katılıyorum :) –