# JsonGet 스크립트 및 차트 함수

JsonGet()은 JSON(JavaScript Object Notation) 데이터 문자열의 경로를 반환합니다. 데이터는 유효한 JSON이어야 하지만 추가 공백이나 줄 바꿈을 포함할 수 있습니다.

구문:

value JsonGet(json, path)

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| json | JSON 데이터를 포함하는 문자열. |
| path | 경로는 [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)에 따라 지정해야 합니다. 이렇게 하면 복잡한 하위 문자열이나 인덱스 함수를 사용하지 않고도 JSON 데이터 내부의 속성을 조회할 수 있습니다. |

예: 유효한 차트 표현식과 잘못된 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '' )` | `{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a' )` | `{"xyz":"XYZ"}`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/a/xyz' )` | `"XYZ"`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b' )` | `[123,"abc","ABC"]`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/0' )` | `123`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/1' )` | `abc`를 반환합니다. |
| `JsonGet( '{"a":{"xyz":"XYZ"},"b":[123,"abc","ABC"]}', '/b/2' )` | `ABC`를 반환합니다. |
| `JsonGet( '{"a":"b"}','/b' )` | `null`을 반환합니다. 경로가 JSON 데이터의 유효한 부분을 가리키지 않습니다. |
| `JsonGet( '{"a"}','/a' )` | `null`을 반환합니다. JSON 데이터는 유효한 JSON이 아닙니다(구성원 `"a"`에 값이 없습니다). |

## 예 - JsonGet 기본 사항

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

#### 차트 표현식

개요

주문 세부 정보가 담긴 JSON 데이터를 한 줄의 텍스트 문자열로 받습니다. 다음 정보를 검색하려고 합니다.

* 품목의 가격, 그리고 해당 값이 숫자인지 유효성 검사

* 고객 이메일 주소

* 총 가격(가격 \* 수량)

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 한 필드는 `OrderDetails`입니다.

로드 스크립트

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

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* ` OrderDetails
                                   `

다음 측정값을 만듭니다.

* `IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )`은 `IsJson` 함수와 결합하여 `price`에 대한 JSON 텍스트를 검색하고 `price`의 값이 숫자인지 유효성을 검사합니다.

* `JsonGet( OrderDetails, '/customer/email' )`은 올바른 경로를 사용하여 고객 이메일 주소를 검색합니다.

* `JsonGet( OrderDetails, '/total_price' ), )`는 올바른 경로를 사용하여 총 가격을 검색합니다.

결과 테이블

| 주문세부정보 | IsJson( JsonGet ( 주문세부정보, '/items/price' ), 'number' ) | JsonGet( 주문세부정보, '/customer/email' ) | JsonGet( 주문세부정보, '/total\_price' ), ) |
| --- | --- | --- | --- |
| { "order\_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "노트북", "quantity": 2, "price": 1200 }, "total\_price": 2400 } | -1(true) | john.doe@example.com | 2400 |

첫 번째 측정값은 `price` 키에 숫자인 `1200` 값이 있기 때문에 `-1 true`를 반환합니다.

두 번째 측정값은 JSON 문자열의 `email` 키에 대한 올바른 경로를 사용하여 `OrderDetails`에서 고객 이메일 주소 `john.doe@example.com`을 반환합니다.

세 번째 측정값은 JSON 문자열의 `total_price` 키에 대한 올바른 경로를 사용하여 `OrderDetails` 필드의 주문 총 가격인 `2400`을 반환합니다.

관련 항목:

* [IsJson 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonSet 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)