# JsonSet Skript- och diagramfunktion

JsonSet() modifierar en sträng som innehåller JSON-data (JavaScript Object Notation). Den kan ställa in eller infoga ett JSON-värde med den nya platsen som anges av sökvägen. JSON-data måste vara giltiga, men kan innehålla extra mellanslag eller nya rader.

Anteckning om informationDu kan lägga till valfritt antal namn-värde-par med JsonSet.

Syntax:

value JsonSet(json, path, value)

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| json | Sträng som innehåller JSON-data. |
| path | Sökvägen måste specificeras enligt [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Det tillåter uppbyggnad av egenskaper inuti JSON-data utan att använda komplexa delsträngar eller indexfunktioner och konkatenering. |
| value | Det nya strängvärdet i JSON-format. |

Exempel: giltiga och ogiltiga diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | Returnerar `{"a":"b"}` |
| `JsonSet( '[]','/0','"x"' )` | Returnerar `["x"]` |
| `JsonSet( '"abc"','','123' )` | Returnerar `123` |
| `JsonSet( '"abc"','/x','123' )` | Returnerar `null`. Sökvägen pekar inte till en giltig del av JSON-datan. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | Returnerar `null`. Sökvägen är ogiltig. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | Returnerar `null`. Värdet är inte en giltig JSON. En sträng måste vara inom citattecken. |

## Exempel – grunderna i JsonSet

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

#### Diagramuttryck

Översikt

JSON-data fås som en textsträng på en enda rad. Du vill uppdatera priset på artikeln och det totala priset för ordern i enlighet med detta.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Ett fält i datatabellen heter `OrderDetails`.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* ` OrderDetails
                                   `

Skapa följande mått:

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)`, för att ställa in priset till `1100` och det totala priset till `2200` med hjälp av rätt sökväg till respektive nyckel i JSON-strängen.

Resultattabell

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

I slutet av åtgärden uppdateras nycklarna `price` och `total price` till `1100` respektive `2200`.

Se även:

* [IsJson Skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet Skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)