# JsonSet Skript- und Diagrammfunktion

JsonSet() ändert einen String, der JSON-Daten (JavaScript Object Notation) enthält. Es kann ein JSON-Wert mit dem neuen, vom Pfad angegebenen Speicherort festgelegt oder eingefügt werden. Die Daten müssen gültiges JSON sein, können aber weitere Leerzeichen oder neue Zeilen enthalten.

InformationshinweisSie können mit JsonSet eine beliebige Anzahl von Name-Wert-Paaren hinzufügen.

Syntax:

value JsonSet(json, path, value)

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| json | String mit JSON-Daten |
| path | Der Pfad muss gemäß [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) angegeben werden. Dies ermöglicht ein Buildup von Eigenschaften innerhalb von JSON-Daten, ohne komplexe Substrings oder Indexfunktionen und Verkettung zu verwenden. |
| value | Der neue String-Wert im JSON-Format. |

Beispiel: Gültige und ungültige Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | Liefert `{"a":"b"}` |
| `JsonSet( '[]','/0','"x"' )` | Liefert `["x"]` |
| `JsonSet( '"abc"','','123' )` | Liefert `123` |
| `JsonSet( '"abc"','/x','123' )` | Liefert `null`. Der Pfad zeigt nicht auf einen gültigen Teil der JSON-Daten. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | Liefert `null`. Der Pfad ist ungültig. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | Liefert `null`. Der Wert ist kein gültiges JSON. Ein String muss in Anführungszeichen eingeschlossen sein. |

## Beispiel – Grundlegendes zu „JsonSet“

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

#### Diagrammformel

Übersicht

Sie erhalten JSON-Daten als Textstring in einer einzigen Zeile. Sie möchten den Preis des Artikels und den Gesamtpreis der Bestellung entsprechend aktualisieren.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Ein Feld in der Datentabelle heißt `OrderDetails`.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* ` OrderDetails
                                   `

Erstellen Sie die folgende Kennzahl:

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)`, um den Preis auf `1100` und den Gesamtpreis auf `2200` festzulegen, indem Sie den korrekten Pfad zu den entsprechenden Schlüsseln im JSON-String verwenden.

Ergebnistabelle

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

Die Ausgabe der Kennzahl aktualisiert die Schlüssel `price` und `total price` auf `1100` bzw. `2200`.

Siehe auch:

* [IsJson Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)