모두 확장/축소 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) 을 반환합니다.
관련 항목: