# JsonSet Komut dosyası ve grafik fonksiyonu

JsonSet(), JSON (JavaScript Object Notation) verisi içeren bir dizeyi değiştirir. Yol tarafından belirlenen yeni konumla bir JSON değeri belirleyebilir ve ekleyebilir. Veri, geçerli JSON olmalıdır ancak ek boşluk veya yeni satırlar içerebilir.

Bilgi notuJsonSet ile istediğiniz sayıda isim-değer çifti ekleyebilirsiniz.

Söz Dizimi:

value JsonSet(json, path, value)

Dönüş verileri türü: dual

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| json | JSON verisi içeren dize. |
| path | Yol [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)'e göre belirtilmelidir. Bu, JSON verilerinde karmaşık alt dize veya indeks fonksiyonları ve birleştirme kullanmadan özellikler oluşturmaya olanak tanır. |
| value | JSON formatında yeni dize değeri. |

Örnek: Geçerli ve geçersiz grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | `{"a":"b"}` döndürür |
| `JsonSet( '[]','/0','"x"' )` | `["x"]` döndürür |
| `JsonSet( '"abc"','','123' )` | `123` döndürür |
| `JsonSet( '"abc"','/x','123' )` | `null` döndürür. Yol, JSON verilerinin geçerli bir parçasına işaret etmiyor. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | `null` döndürür. Yol geçersiz. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | `null` döndürür. Değer, geçerli JSON değil. Dizeler, tırnak işaretleri arasında olmak zorundadır. |

## Örnek - JsonSet temel bilgileri

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

#### Grafik ifadesi

Genel bakış

JSON verileri tek bir satırda metin dizesi olarak alınır. Ürünün fiyatını ve siparişin toplam fiyatını buna göre güncellemek istiyorsunuz.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosunda `OrderDetails` adında bir alan.

Komut dosyası

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

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:

* ` OrderDetails
                                   `

Şu hesaplamayı oluşturun:

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)`, JSON dizesindeki ilgili anahtarların doğru yolunu kullanarak fiyatı `1100` ve toplam fiyatı `2200` olarak ayarlamak için.

Sonuçlar tablosu

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

Hesaplamanın çıktısı `price` ve `total price` anahtarlarını sırasıyla `1100` ve `2200` olarak günceller.

Ayrıca bk.

* [IsJson Komut dosyası ve grafik fonksiyonu](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet Komut dosyası ve grafik fonksiyonu](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)