Non riesco a trovare molti suggerimenti su come progettare strutture JSON complesse oltre agli ovvi consigli di non cercare di annidare troppo profondamente, utilizzando tipi di dati definiti, ecc.
Ad esempio, se ho una posizione che deve avere la scansione di sicurezza eseguita su tutti i suoi segmenti e dispositivi all'interno dei segmenti, ci sono molte opzioni su come potrei farlo.
{
"site": "Site 1",
"segments": [
{
"name": "Segment 1",
"devices": [
{
"name": "Device 1",
"scans": [
{
"type": "discovery",
"date": "2016-01-12",
"phase": "10",
"remediate": "0"
},
{} ...
]
},
{} ...
]
},
{} ...
]
}
Per questo esempio, mi vengono in mente alcune domande:
-
Va bene utilizzare la proprietà
"name"
due volte, poiché si trovano su livelli diversi? Ho letto che è meglio mantenere i nomi delle proprietà abbreviati per i parser. Pertanto, dovresti usarlo due volte? Oppure modificali in"seg_name"
e"dev_name"
, ad esempio? -
Puoi vedere un modello chiaro per
"segments"
,"devices"
e"scans"
dove sono ciascuno un array di oggetti.
Potrei cambiarlo in qualcosa di simile:
{
"site": "Site 1",
"segments": {
"Segment 1": {
"Device 1": {
"discovery": {
"date": "2016-01-12",
"phase": "10",
"remediate": "0"
},
"exploit": {} ...
},
"Device 2": {} ...
},
"Segment 2": {} ...
}
}
Il problema che vedo apparire con questo formato è che se volessi avere una proprietà per tutti i segmenti, dovresti metterla a livello di root, invece che all'interno della proprietà "segments"
, poiché il nome della proprietà potrebbe essere in conflitto con il nome di un segmento. Tuttavia, è meno annidato, il che è un vantaggio.
I'm wondering if there are some guidelines of which situations are best suited for a certain format?
Se dipende davvero da quale lingua lo stai usando, vorrei inviare i dati tra JavaScript e PHP.