IsJson - 스크립트 및 차트 함수
IsJson()은 지정된 문자열에 유효한 JSON(JavaScript Object Notation) 데이터가 포함되어 있는지 테스트합니다. 특정 JSON 데이터 유형의 유효성을 검사할 수도 있습니다.
구문:
value IsJson(json [, type])
반환 데이터 유형: 이중
인수
json
|
테스트할 문자열입니다. 추가 공백이나 줄 바꿈을 포함할 수 있습니다. |
type
|
테스트할 JSON 데이터 유형을 지정하는 선택적 인수입니다.
-
'value'(기본값)
-
'object'
-
'array'
-
'string'
-
'number'
-
'Boolean'
-
'null'
|
예: 유효한 차트 표현식과 잘못된 차트 표현식
IsJson( 'null' )
|
-1 (true)를 반환합니다. |
IsJson( '"abc"', 'value' )
|
-1 (true)를 반환합니다. |
IsJson( '"abc"', 'string' )
|
-1 (true)를 반환합니다. |
IsJson( 123, 'number' )
|
-1 (true)를 반환합니다. |
IsJson( 'text' )
|
0 (false)을 반환합니다. 'text'는 유효한 JSON 값이 아닙니다. |
IsJson( '"text"', 'number' )
|
0 (false)을 반환합니다. '"text"'는 유효한 JSON 숫자가 아닙니다. |
IsJson( '"text"', 'text' )
|
0 (false)을 반환합니다. 'text'는 유효한 JSON 유형이 아닙니다. |
예 - IsJson 기본 사항
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Example이라는 데이터 테이블에 로드되는 데이터 집합입니다.
데이터 테이블의 한 필드는 API_Response입니다.
ID라는 파생 필드. 이 필드에서는 Rec() 함수를 사용하여 입력 레코드를 열거합니다.
로드 스크립트
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"}'
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
다음 계산된 차원을 만듭니다.
결과 테이블 ID | 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) |
유효한 JSON 구문을 사용하는 값의 경우 출력은 -1 또는 true를 반환합니다.
이 출력은 다음 ID 레코드(3 및 5)에 대해 잘못된 JSON을 사용하여 0 또는 false를 반환합니다.
{invalid json string} — 텍스트 문자열이 유효한 JSON 응답 구조를 나타내지 않습니다.
{"id": 5, name: "David"} — 두 번째 키-값 쌍에서 키 "name" 주위에 따옴표가 없습니다.
예 - IsJson 시나리오
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
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 }'
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
다음 측정값을 만듭니다.
IsJson( OrderDetails)는 OrderDetails의 값이 유효한 JSON인지 계산합니다.
IsJson( JsonGet ( OrderDetails, '/items/price' ), 'number' )은 JsonGet 함수를 사용하여 price 키에 대한 JSON 텍스트를 검색하고 price의 값이 숫자인지 유효성을 검사합니다.
결과 테이블 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에 유효한 JSON 구문이 포함되어 있기 때문에 -1 (true)을 반환합니다.
두 번째 측정값은 price 키 값이 유효한 숫자 1200이기 때문에 -1 (true)을 반환합니다.
관련 항목: