# JsonSet Script- en diagramfunctie

JsonSet() wijzigt een string die JSON-gegevens (JavaScript Object Notation) bevat. Het kan een JSON-waarde instellen of invoegen met de nieuwe locatie die is opgegeven door het pad. De JSON-gegevens moeten een geldige JSON zijn, maar kunnen extra spaties of nieuwe regels bevatten.

InformatieU kunt een willekeurig aantal naam-waardeparen toevoegen met JsonSet.

Syntaxis:

value JsonSet(json, path, value)

Retourgegevenstypen: dubbele waarde

Argumenten

| Argument | Beschrijving |
| --- | --- |
| json | Tekenreeks met JSON-gegevens. |
| path | Het pad moet zijn gespecificeerd volgens [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Dit maakt opbouwen van eigenschappen in json-gegevens mogelijk zonder gebruik van complexe subtekenreeks- of indexfuncties en aaneenschakeling. |
| value | De nieuwe tekenreekswaarde in JSON-indeling. |

Voorbeeld: geldige en ongeldige diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | Retourneert `{"a":"b"}` |
| `JsonSet( '[]','/0','"x"' )` | Retourneert `["x"]` |
| `JsonSet( '"abc"','','123' )` | Retourneert `123` |
| `JsonSet( '"abc"','/x','123' )` | Retourneert `null`. Het pad verwijst niet naar een geldig deel van de JSON-gegevens. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | Retourneert `null`. Het pad is ongeldig. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | Retourneert `null`. De waarde is geen geldige JSON. Een tekenreeks moet tussen aanhalingstekens worden geplaatst. |

## Voorbeeld - Basisprincipes voor JsonSet

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

#### Diagramuitdrukking

Overzicht

JSON-gegevens worden ontvangen als een teksttekenreeks in een enkele regel. U wilt de prijs van het artikel en de totaalprijs van de bestelling dienovereenkomstig bijwerken.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* Eén veld in de gegevenstabel met de naam `OrderDetails`.

Load-script

```
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 }'
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* ` OrderDetails
                                   `

Maak de volgende meting:

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)` om de prijs in te stellen op `1100` en de totaalprijs op `2200` met behulp van het juiste pad naar de respectieve sleutels in de JSON-tekenreeks.

Resultatentabel

| 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} |

De uitvoer van de meting werkt de `price` en `total price` sleutels bij naar respectievelijk `1100` en `2200`.

Zie ook:

* [IsJson Script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet Script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)