# IsJson Komut dosyası ve grafik fonksiyonu

IsJson(), belirtilmiş bir dizenin geçerli JSON (JavaScript Object Notation) verisi içerip içermediğini sınar. Ayrıca belirli bir JSON veri türünü doğrulayabilirsiniz.

Söz Dizimi:

value IsJson(json [, type])

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

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| json | Test edilecek dize. Fazladan boşluklar veya yeni satırlar içerebilir. |
| type | Test edilecek JSON veri türünü belirten isteğe bağlı bağımsız değişken.<br><br><ul> <li> <p>"value" (varsayılan)</p> </li> <li> <p>"object"</p> </li> <li> <p>"array"</p> </li> <li> <p>'dize'</p> </li> <li> <p>"number"</p> </li> <li> <p>"Boolean"</p> </li> <li> <p>"null" </p> </li> </ul> |

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

| Örnek | Sonuç |
| --- | --- |
| `IsJson( 'null' )` | `-1 (true)` döndürür |
| `IsJson( '"abc"', 'value' )` | `-1 (true)` döndürür |
| `IsJson( '"abc"', 'string' )` | `-1 (true)` döndürür |
| `IsJson( 123, 'number' )` | `-1 (true)` döndürür |
| `IsJson( 'text' )` | `0 (false)` döndürür, `'text'`, geçerli bir JSON değeri değildir |
| `IsJson( '"text"', 'number' )` | `0 (false)` döndürür, `'"text"'`, geçerli bir JSON sayısı değildir |
| `IsJson( '"text"', 'text' )` | `  0 (false) ` döndürür, `'text'`, geçerli bir JSON türü değildir |

## Örnek - IsJson temel bilgileri

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

#### Grafik ifadesi

Genel bakış

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 `API_Response` adında bir alan.

* `ID` adında türetilmiş bir alan. Bu alan, giriş kayıtlarını numaralandırmak için `Rec()` fonksiyonunu kullanır.

Komut dosyası

```
Example:
Load
Recno() AS ID, API_Response
inline [
API_Response
'{"id": 1, "name": "Alice"}'
'{"id": 2, "name": "Bob"}'
'{invalid json string}'
'{"id": 4, "name": "Charlie"}'
'{"id": 5, name: "David"}'
];
```

Sonuçlar

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

* ` ID
                                   `
* ` API_Response
                                   `

Aşağıdaki hesaplanan boyutu oluşturun:

* `=IsJson(API_Response)`, `API_Response` içindeki değerlerin geçerli JSON olup olmadığını hesaplamak için kullanılır.

Sonuçlar tablosu

| Kimlik | API\_Response | IsJson(API\_Response) |
| --- | --- | --- |
| 1 | {"id": 1, "name": "Alice"} | -1 (true) |
| 2 | {"id": 2, "name": "Bob"} | -1 (true) |
| 3 | {invalid json string} | 0 (false) |
| 4 | {"id": 4, "name": "Charlie"} | -1 (true) |
| 5 | {"id": 5, name: "David"} | 0 (false) |

Çıktı, geçerli JSON sözdizimine sahip değerler için `-1` veya true döndürür.

Çıktı, geçersiz JSON içeren aşağıdaki kimlik kayıtları (`3` ve `5`) için `0` veya false döndürür:

* `{invalid json string}` - Metin dizesi geçerli bir JSON yanıt yapısını temsil etmiyor.

* `{"id": 5, name: "David"}` - İkinci anahtar-değer çiftinde `"name"` anahtarının etrafında tırnak işareti eksik .

## Örnek - IsJson senaryosu

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

#### Grafik ifadesi

Genel bakış

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
                                   `

Aşağıdaki hesaplamaları oluşturun:

* `IsJson( OrderDetails)`, `OrderDetails` içindeki değerlerin geçerli JSON olup olmadığını hesaplamak için kullanılır.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`, `JsonGet` fonksiyonunu kullanarak, `price` anahtarı için JSON metnini alır ve `price` değerinin bir sayı olduğunu doğrular.

Sonuçlar tablosu

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

`OrderDetails` geçerli JSON söz dizimi içerdiğinden ilk hesaplama `-1 (true)` sonucunu döndürür.

`price` anahtarının değeri geçerli bir sayı olduğundan (`1200`) ikinci hesaplama `-1 (true)` döndürür.

Ayrıca bk.

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

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