

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# JSON.MSET
<a name="json-mset"></a>

Supportato per Valkey versione 8.1 e successive.

Imposta i valori JSON per più chiavi. L'operazione è atomica. Tutti i valori sono impostati o non ne è impostato nessuno.

**Sintassi**

```
JSON.MSET key path json [ key path json ... ]
```
+ Se il percorso richiede un membro oggetto:
  + Se l'elemento principale non esiste, il comando restituirà l'errore NONEXISTENT.
  + Se l'elemento principale esiste ma non è un oggetto, il comando restituirà ERROR.
  + Se l'elemento padre esiste ed è un oggetto:
    + Se il membro non esiste, un nuovo membro verrà accodato all'oggetto padre se e solo se l'oggetto padre è l'ultimo figlio nel percorso. In caso contrario, il comando restituirà un errore INESISTENTE.
    + Se il membro esiste, il suo valore verrà sostituito dal valore JSON.
+ Se il percorso richiede un indice di array:
  + Se l'elemento principale non esiste, il comando restituirà un errore INESISTENTE.
  + Se l'elemento principale esiste ma non è un array, il comando restituirà ERROR.
  + Se l'elemento principale esiste ma l'indice non è compreso nei limiti, il comando restituirà l'errore OUTOFBOUNDARIES.
  + Se l'elemento padre esiste e l'indice è valido, l'elemento verrà sostituito dal nuovo valore JSON.
+ Se il percorso richiede un oggetto o un array, il valore (oggetto o array) verrà sostituito dal nuovo valore JSON.

**Valori restituiti**
+ Risposta in formato stringa semplice: 'OK' se l'operazione è andata a buon fine.
+ Risposta di errore semplice: se l'operazione non è riuscita.

**Examples** (Esempi)

Sintassi avanzata del percorso:

```
127.0.0.1:6379> JSON.MSET k1 . '[1,2,3,4,5]' k2 . '{"a":{"a":1, "b":2, "c":3}}' k3 . '{"a": [1,2,3,4,5]}'
OK
127.0.0.1:6379> JSON.GET k1
"[1,2,3,4,5]"
127.0.0.1:6379> JSON.GET k2
"{\"a\":{\"a\":1,\"b\":2,\"c\":3}}"
127.0.0.1:6379> JSON.MSET k2 $.a.* '0' k3 $.a[*] '0'
OK
127.0.0.1:6379> JSON.GET k2
"{\"a\":{\"a\":0,\"b\":0,\"c\":0}}"
127.0.0.1:6379> JSON.GET k3
"{\"a\":[0,0,0,0,0]}"
```

Sintassi limitata del percorso:

```
127.0.0.1:6379> JSON.MSET k1 . '{"name": "John","address": {"street": "123 Main St","city": "Springfield"},"phones": ["555-1234","555-5678"]}'
OK
127.0.0.1:6379> JSON.MSET k1 .address.street '"21 2nd Street"' k1 .address.city '"New York"'
OK
127.0.0.1:6379> JSON.GET k1 .address.street
"\"21 2nd Street\""
127.0.0.1:6379> JSON.GET k1 .address.city
"\"New York\""
```