# JsonGet funkcja skryptu i funkcja wykresu

JsonGet() zwraca ścieżkę ciągu danych JSON (JavaScript Object Notation). Dane JSON muszą mieć poprawny format JSON, ale mogą zawierać dodatkowe spacje i znaki nowego wiersza.

Składnia:

value JsonGet(json, path)

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| json | Ciąg zawierający dane JSON. |
| path | Ścieżka musi spełniać warunki normy [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901). Umożliwi to wyszukiwanie właściwości w danych w formacie JSON bez użycia skomplikowanych funkcji operujących na fragmentach tekstu lub indeksujących. |

Przykład: prawidłowe i nieprawidłowe wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '' )` | Zwraca wartość `{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a' )` | Zwraca wartość `{"xyz":"XYZ"}` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a/xyz' )` | Zwraca wartość `"XYZ"` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b' )` | Zwraca wartość `[123,"abc","ABC"]` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/0' )` | Zwraca wartość `123` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/1' )` | Zwraca wartość `abc` |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/2' )` | Zwraca wartość `ABC` |
| `JsonGet( '{"a":"b"}','/b' )` | Zwraca wartość `null`. Ścieżka nie wskazuje prawidłowej części danych w formacie JSON. |
| `JsonGet( '{"a"}','/a' )` | Zwraca wartość `null`. Dane JSON mają nieprawidłowy format danych JSON (składowa `"a"` nie ma wartości). |

## Przykład — podstawy JsonGet

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

#### Wyrażenie wykresu

Przegląd

Otrzymujesz dane JSON ze szczegółami zamówienia jako ciąg tekstowy w jednym wierszu. Chcesz pobrać następujące informacje:

* cena przedmiotu i sprawdzenie, czy wartość jest liczbą

* adres e-mail klienta

* cena całkowita (cena \* ilość)

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Jedno pole w tabeli danych o nazwie `OrderDetails`.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* ` OrderDetails
                                   `

Utwórz następujące miary:

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )` w połączeniu z funkcją `IsJson` pobiera tekst JSON dla `price` i weryfikuje, czy `price` jest liczbą.

* `JsonGet( OrderDetails, '/customer/email' )` do pobrania adresu e-mail klienta przy użyciu prawidłowej ścieżki.

* `JsonGet( OrderDetails, '/total_price' ), )` do pobrania całkowitej ceny przy użyciu prawidłowej ścieżki.

Tabela wynikowa

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

Pierwsza miara zwraca `-1 true`, ponieważ klucz `price` ma wartość `1200`, która jest liczbą.

Druga miara zwraca adres e-mail klienta, `john.doe@example.com`, z `OrderDetails` przy użyciu poprawnej ścieżki do klucza `email` w łańcuchu JSON.

Trzecia miara zwraca wartość `2400`, która jest całkowitą ceną zamówienia z pola `OrderDetails`, używając poprawnej ścieżki do klucza `total_price` w łańcuchu JSON.

Zob. także:

* [IsJson funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonSet funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)