2016-02-04 4 views
5

Zgodnie z zaleceniem w sprawie JSON API specyfikacji miejscu, powinniśmy korzystać ze wszystkich nazwisk członków dolnej w przypadku JSON oddzielonych myślnikami:Dlaczego specyfikacja interfejsu JSON API sugeruje użycie łącznika/minusa do rozdzielania słów w nazwach członków?

dozwolonych i zalecanych znaków dla bezpiecznego nazewnictwa URL członkami są zdefiniowane w specyfikacji formatu. Również ujednolicić członkiem nazwy następujące (bardziej restrykcyjne) zasady zalecane są:

nazwy członek powinien rozpocząć i zakończyć z bohaterami „az” (+ 0061 do U + 007A U) nazwy użytkownika powinna zawierać tylko znaki "az" (U + 0061 do U + 007A), "0-9" (U + 0030 do U + 0039), a myślnik minus (U + 002D HYPHEN-MINUS, "-") jako separator między wielokrotnymi słowa.

Więc w zasadzie, powinniśmy używać JSON tak:

{ 
    "first-name": "Jason", 
    "last-name": "Tough" 
} 

nie pozwoliłoby ono cumbersome dostęp do tych właściwości w JavaScript? Lub jakikolwiek inny język programowania, zwłaszcza jeśli chcemy generować klasy z JSON Schema?

Jaka jest motywacja tego zalecenia?

+1

Wyjaśnia motywacji: Aby używać znaków, które są bezpieczne w adresie URL. – Barmar

+2

Tak. Ta specyfikacja jest głupia, ponieważ podkreślenie ('_') jest bezpiecznym znakiem URL. Sądzę, że 1. myśleli, że użycie '-' zachowuje ich od zmiany typu i 2. nie są programistami javascript, więc nigdy nie używali składni' foo.bar'. Każda specyfikacja JSON, która nie powoduje, że użycie javascript jest priorytetem, nie powiedzie się – slebetman

+0

Nie będę opisywał składni tablic ani wyrażeń szablonów jako "bardzo kłopotliwych". – dandavis

Odpowiedz

1

Miałem to samo pytanie, znalazłem to wyjaśnienie, dlaczego nie powinienem używać podkreślenia z namingDirectives. to nie to samo, ale wygląda dość podobnie:

The UNDERSCORE character ("_") may be used in filenames and directory names where an application (unavoidably) generates this character, but in general, use of HYPHEN to mark juncture is preferable; the UNDERSCORE character may be visually confused with SPACE or an underline-effect in some predictable publication contexts. An UNDERSCORE must never be used in a filename or directory name that is used in a document URI — that is, a primary URI reference published as a document cover page URI (i.e. as required for identification of a Work Product as a whole or for identification of a separately-titled prose Part in a Multi-Part Work Product).

+0

Ale jest to bardzo słaby argument w tym kontekście. To dane JSON, które mają być przesyłane przez sieć, a nie jakaś biała księga. – slebetman

Powiązane problemy