# JsonSet - Funzione per script e grafici

JsonSet() modifica una stringa contenente dati JSON (JavaScript Object Notation). Può impostare o inserire un valore JSON con la nuova posizione specificata dal percorso. I dati devono essere dati JSON validi ma possono contenere spazi extra o righe nuove.

Nota informaticaÈ possibile aggiungere un numero qualsiasi di coppie nome-valore con JsonSet.

Sintassi:

value JsonSet(json, path, value)

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| json | Stringa contenente dati JSON. |
| path | Il percorso deve essere specificato in base a [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Ciò consentirà la creazione di proprietà all'interno dei dati JSON senza l'utilizzo di funzione complesse sottostringa o indice e concatenazione. |
| value | Il nuovo valore della stringa in formato JSON. |

Esempio: espressioni del grafico valide e non valide

| Esempio | Risultato |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | Restituisce `{"a":"b"}` |
| `JsonSet( '[]','/0','"x"' )` | Restituisce `["x"]` |
| `JsonSet( '"abc"','','123' )` | Restituisce `123` |
| `JsonSet( '"abc"','/x','123' )` | Restituisce `null`. Il percorso non punta a una parte valida dei dati JSON. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | Restituisce `null`. Il percorso non è valido. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | Restituisce `null`. Il valore non è un JSON valido. Una stringa deve essere racchiusa tra virgolette. |

## Esempio: principi fondamentali della funzione JsonSet

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)

#### Espressione del grafico

Panoramica

I dati JSON vengono ricevuti come una stringa di testo in un'unica riga. Si desidera aggiornare il prezzo dell'articolo e il prezzo totale dell'ordine di conseguenza.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un campo della tabella dati denominata `OrderDetails`.

Script di caricamento

```
Example:
Load  * 
INLINE [OrderDetails
'{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 }'
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* `OrderDetails`

Creare la seguente misura:

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)`, per impostare il prezzo su `1100` e il prezzo totale su `2200` utilizzando il percorso corretto delle rispettive chiavi nella stringa JSON.

Tabella dei risultati

| OrderDetails | JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total\_price',2200) |
| --- | --- |
| { "order\_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total\_price": 2400 } | {"order\_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1100},"total\_price":2200} |

L'output della misura aggiorna le chiavi `price` e `total price` a `1100` e `2200`, rispettivamente.

Vedere anche:

* [IsJson - Funzione per script e grafici](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet - Funzione per script e grafici](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)