데이터 타입 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 타입

AWS IoT 규칙 엔진은 모든 JSON 데이터 유형을 지원합니다.

지원되는 데이터 유형
유형 의미
Int 이산 Int. 최대 34자리.
Decimal

정밀도 34자리, 0이 아닌 최소 크기 1E-999, 최대 크기 9.999…E999의 Decimal

참고

일부 함수는 34자리 정밀도 대신 배정밀도의 Decimal을 반환합니다.

SQL V2(2016-03-23)에서 10.0와(과) 같은 정수인 숫자 값은 예상되는 Decimal 값(10.0) 대신 Int 값(10)으로 처리됩니다. 정수 숫자 값을 Decimal 값으로 안정적으로 처리하려면 규칙 쿼리 문에 SQL V1(2015-10-08)을 사용하세요.

Boolean True 또는 False
String UTF-8 문자열
Array 동일한 형식일 필요가 없는 일련의 값
Object 키 및 값으로 구성된 JSON 값입니다. 키는 문자열이어야 합니다. 값은 임의의 형식일 수 있습니다.
Null JSON에 의해 정의된 Null입니다. 이는 값 없음을 나타내는 실제 값입니다. SQL 문에서 Null 키워드를 사용하여 명시적으로 Null 값을 생성할 수 있습니다. 예: "SELECT NULL AS n FROM 'topic/subtopic'"
Undefined

값이 아닙니다. 값을 생략하는 것 이외에는 JSON에서 이를 명시적으로 표현할 수 없습니다. 예를 들어 객체 {"foo": null}에서 키 "foo"는 NULL을 반환하지만 키 "bar"는 Undefined를 반환합니다. 내부적으로는 SQL 언어가 Undefined를 값으로 취급하지만 JSON에서는 표현이 불가능합니다. 따라서 JSON으로 직렬화될 경우 결과는 Undefined입니다.

{"foo":null, "bar":undefined}

다음과 같이 JSON으로 직렬화됩니다.

{"foo":null}

마찬가지로, Undefined는 자체에 의해 직렬화될 경우 빈 문자열로 변환됩니다. 잘못된 인수(예: 잘못된 형식, 잘못된 인수 개수 등)로 호출된 함수는 Undefined를 반환합니다.

변환

다음 표에는 (함수에 잘못된 형식의 값이 입력된 경우) 값이 한 형식에서 다른 형식으로 변환될 경우의 결과가 나와 있습니다. 예를 들어 절대값 함수 "abs"(Int 또는 Decimal이 필요함)에 String이 주어질 경우 이 함수는 다음 규칙에 따라 StringDecimal로 변환하려고 시도합니다. 이 경우 'abs("-5.123")'는 'abs(-5.123)'으로 취급됩니다.

참고

Array, Object, Null 또는 Undefined로는 변환이 시도되지 않습니다.

소수로 변환
인수 유형 Result
Int 소수점이 없는 Decimal
Decimal 소스 값
Boolean Undefined(명시적으로 cast 함수를 사용하여 true = 1.0, false = 0.0으로 변환할 수 있습니다.)
String SQL 엔진은 문자열을 a로 파싱하려고 시도합니다. Decimal AWS IoT 정규 표현식과 일치하는 문자열을 파싱하려고 시도합니다. ^-?\d+(\.\d+)?((?i)E-?\d+)?$ "0", "-1.2", "5E-12"는 모두 자동으로 Decimal로 변환되는 문자열의 예입니다.
배열 Undefined.
객체 Undefined.
Null Null.
정의되지 않음 Undefined.
정수로 변환
인수 유형 Result
Int 소스 값
Decimal 가장 가까운 Int로 반올림한 소스 값
Boolean Undefined(명시적으로 cast 함수를 사용하여 true = 1.0, false = 0.0으로 변환할 수 있습니다.)
String SQL 엔진은 문자열을 a로 파싱하려고 합니다. Decimal AWS IoT 정규 표현식과 일치하는 문자열을 파싱하려고 시도합니다. ^-?\d+(\.\d+)?((?i)E-?\d+)?$ “0", “-1.2", “5E-12" 등은 모두 Decimal s로 자동 변환되는 문자열의 예입니다. a로 변환을 AWS IoT 시도한 다음 소수점 이하 자릿수를 잘라 Decimal an을 만듭니다. String Decimal Int
배열 Undefined.
객체 Undefined.
Null Null.
정의되지 않음 Undefined.
부울로 변환
인수 유형 Result
Int Undefined(명시적으로 cast 함수를 사용하여 0 = False, 0이 아닌 값 = True로 변환할 수 있습니다.)
Decimal Undefined(명시적으로 cast 함수를 사용하여 0 = False, 0이 아닌 값 = True로 변환할 수 있습니다.)
Boolean 원래 값
String "true"=True, "false"=False(대/소문자를 구분하지 않음). 다른 문자열 값은 Undefined입니다.
배열 Undefined.
객체 Undefined.
Null Undefined.
정의되지 않음 Undefined.
문자열로 변환
인수 유형 Result
Int 표준 표기법을 따른 Int의 문자열 표현.
Decimal 유효숫자 표기법을 따를 수 있는 Decimal의 문자열 표현.
Boolean "true" 또는 "false". 모두 소문자.
String 원래 값
배열 JSON으로 직렬화된 Array입니다. 결과 문자열은 대괄호 안의 쉼표로 구분된 목록입니다. String은 따옴표로 묶입니다. Decimal, Int, BooleanNull은 따옴표로 묶이지 않습니다.
객체 JSON으로 직렬화된 객체입니다. 결과 문자열은 키-값 페어의 쉼표로 구분된 목록이며 중괄호로 묶입니다. String은 따옴표로 묶입니다. Decimal, Int, BooleanNull은 따옴표로 묶이지 않습니다.
Null Undefined.
정의되지 않음 Undefined