E 'una cattiva pratica usare i trattini nelle chiavi JSON?

7

Vedo molte domande relative all'accesso ai tasti JSON che usano i trattini (kebab-case), ma ora mi sorprendo a chiedermi se devo limitarmi a camelCase o snake_case nelle mie chiavi. So che i trattini possono anche creare complicati mapping quando vengono portati tra le lingue. Ho visto alcune librerie deserialize JSON convertire quelle chiavi in uno stile CamelCase.

Esempio:

var something = {
  "some-value": 'thing'
}

Vs

var something = {
  "someValue": 'thing',
  "some_other_value": 'thing_two'
}
    
posta Matt Oaxaca 28.05.2016 - 19:18
fonte

2 risposte

11

Puoi usare qualsiasi come chiavi JSON, a condizione che sia UTF-8 valido, non contenga punti di codice zero, e sarebbe utile se tu potessi rappresentare la chiave come una stringa nel linguaggio di programmazione di tua scelta. Potrei raccomandare di non utilizzare diverse rappresentazioni Unicode della stessa stringa (ad esempio "Ä" scritto come uno o due punti di codice).

Leggendo alcuni commenti: alcune persone cercano di creare classi con variabili di istanza che corrispondono alle chiavi nei dizionari JSON. Che naturalmente non funziona se la tua chiave è "un po 'di valore" a meno che tu non scriva COBOL. Penso che questo sia fuorviato. Ho classi di modelli che sono progettate nel modo in cui I le vogliamo. JSON è appena usato per riempire le classi modello. Prenderò qualunque cosa i server decidano di usare per le chiavi e inserirli negli miei oggetti del modello.

    
risposta data 28.05.2016 - 19:41
fonte
6

Ci sono molti sistemi di serializzazione JSON che sono più che in grado di gestire la mappatura tra nomi di campi che non sono adatti per l'uso nella lingua con cui si integrano. Nella maggior parte dei casi, non sono difficili da usare e richiedono solo un piccolo sforzo extra. In un mondo ideale, non dovresti farlo, ma se la tua API utilizza già dei trattini, cambiarla sarebbe una cura peggiore della malattia. Tieni inoltre presente che utilizzare i trattini è lo stile più comune in alcune lingue, in particolare quelle basate su LISP, quindi probabilmente c'è una minoranza silenziosa dei consumatori della tua API che sono felici di vedere i trattini piuttosto che un altro formato.

    
risposta data 29.05.2016 - 15:53
fonte

Leggi altre domande sui tag