Buongiorno, Rino.
La struttura che mi descrivi non mi è chiarissima ma provo a reimpostare la questione: ti serve un array all'interno di un JSON vuoto. In realtà non cambierebbe molto anche con JSON pieno, ma per semplicità lo scegliamo vuoto. La prima cosa che ti conviene fare è selezionare una chiave a cui associare l'array come valore (per maggiore semplicità di utilizzo): chiamamola "mail".
Quindi hai due elementi: la chiave e il valore che le vuoi dare. Diciamo per assurdo che sia un solo valore. in questo caso ti basterebbe un calcolo del tipo:
Dichiara(
[J= JSONSetElement ( "" ; ["chiave"; "valore";1]; ["chiave2"; "valore2";1]; ["chiave3"; 3;2]); JSONSetElement ( "" ; "mail" ; J ; 3 )
)
tuttavia, vuoi un array, quindi devi capire quante oggetti hai all'interno della tua chiave. Lo puoi capire con la funzione JSONListKeys(), nell'esempio specifico:
JSONListKeys ( $json ; "mail" )
JSONListKeys ti restituisce una lista con i numeri degli oggetti presenti, partendo da 0.
In questo caso la funzione più diretta potrebbe essere qualcosa del genere:
Dichiara([
J= JSONSetElement ( "" ; ["chiave"; "valore";1]; ["chiave2"; "valore2";1]; ["chiave3"; "valore3";1]);
// l'oggetto che devi aggiungere ogni volta
JJ=$json;
//Il Json su cui stai lavorando, che è anche la variabile che viene popolata da questo calcolo
m_=JSONListKeys ( JJ ; "mail" );
// quanti oggetti contiene la chiave mail nell'oggetto su cui stai lavorando
l_=ricavacomenumero(ValoriaDestra (m_;1))
//L'ultimo numero da M_ utilizzato
i_= if(evuoto(m_); 0; l_+1)
//il valore da utilizzare. se m_ è vuoto significa che non ci sono chiavi, quindi si parte da 0
];
JSONSetElement ( JJ ; "mail["& i_ & "]" ; J ; 3 )
//aggiungi un nuovo valore alla chiave mail, il cui numero è il primo libero
)
Non so se è chiaro, facci sapere!
.g.