Ho visto questo other question ma non è proprio la stessa cosa, e sento che il mio problema è più semplice, ma semplicemente non funziona.Definizione schema JSON per matrice di oggetti
I miei dati sarebbero simile a questa:
[
{ "loc": "a value 1", "toll" : null, "message" : "message is sometimes null"},
{ "loc": "a value 2", "toll" : "toll is sometimes null", "message" : null}
]
Sono voler utilizzare AJV per la convalida JSON in un progetto Node.js e ho provato diversi schemi per cercare di descrivere i miei dati, ma io sempre ottenere questo come l'errore:
[ { keyword: 'type',
dataPath: '',
schemaPath: '#/type',
params: { type: 'array' },
message: 'should be array' } ]
sembra lo schema che ho provato in questo modo:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"loc": {
"type": "string"
},
"toll": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"loc"
]
}
}
Ho anche provato a generare lo schema usando this online tool ma anche questo non funziona, e per verificare che questo dovrebbe produrre il risultato corretto, ho provato a convalidare quell'output contro jsonschemavalidator.net, ma anche questo mi dà un errore simile:
Found 1 error(s)
Message:
Invalid type. Expected Array but got Object.
Schema path:
#/type
Non sono nemmeno al punto di convalidare i dati, in questo momento sto solo provando a convalidare lo schema stesso. –
@KyleFalconer, lo schema è valido. Ho provato il validatore a cui ti sei collegato. Penso che il problema che stai avendo è che mette '{}' nel campo "Input JSON" per impostazione predefinita. Devi cambiarlo in un array. Lo strumento fa apparire l'errore con lo schema, ma in realtà sono i dati che non sono validi. – Jason
Dang, hai ragione! Grazie mille! –