AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

数据类型

AWS IoT 规则引擎支持所有 JSON 数据类型。

受支持数据类型

Type 意义
Int 离散的 Int。最大 34 位。
Decimal

精度为 34 位的 Decimal,最小非零数量级为 1E-999,最大数量级为 9.999…E999。

注意

部分功能返回双精度 Decimal,而不是 34 位数字精度。

Boolean True 或者 False
String UTF-8 字符串。
Array 不必为相同类型的一系列值。
Object 包含一个键和一个值的 JSON 值。键必须是字符串。值可以是任意类型。
Null Null 由 JSON 定义。它是表示缺少某个值的实际值。您必须通过使用 SQL 语句中 Null 关键字明确创建一个 Null 值。例如:"SELECT NULL AS n FROM 'a/b'"
Undefined

非值。在 JSON 中无法明确表示,只能忽略该值。例如,在对象 {"foo": null} 中,键“foo”返回 NULL,但键“bar”返回 Undefined。在内部,SQL 语言将 Undefined 作为值处理,但它在 JSON 中无法表示,因此,在序列化为 JSON 时,结果为 Undefined

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

序列化为 JSON 如下:

{"foo":null}

同样,Undefined 在被自身序列化时会转化为空字符串。使用无效参数 (例如,错误的类型、错误的参数号等) 调用的函数将返回 Undefined

转换

下表列出当一个类型的值转换为另一个类型时 (为函数提供错误类型的值时) 返回的结果。例如,如果绝对值函数“abs”(期待的值类型为 IntDecimal) 被赋予 String 时,它会尝试遵循以下规则将 String 转换为 Decimal。在这种情况下,“abs("-5.123")”将被视为“abs(-5.123)”。

注意

不会尝试转换 ArrayObjectNullUndefined

To Decimal

参数类型 结果
Int 没有小数点的 Decimal
Decimal 源值。
Boolean Undefined。(您可以明确使用强制转换函数使 trun = 1.0,false = 0.0。)
String SQL 引擎尝试将字符串解析为 Decimal。AWS IoT 尝试解析与正则表达式相匹配的字符串:^-?\d+(\.\d+)?((?i)E-?\d+)?$。可自动转换为 Decimal 的字符串示例包括 "0"、"-1.2"、"5E-12"。
数组 Undefined
Object Undefined
Null Null
未定义 Undefined

To Int

参数类型 结果
Int 源值。
Decimal 源值都舍入到最接近的 Int
Boolean Undefined。(您可以明确使用强制转换函数使 trun = 1.0,false = 0.0。)
String SQL 引擎会尝试将字符串解析为 Decimal。我们会尝试解析与正则表达式相匹配的字符串:^-?\d+(\.\d+)?((?i)E-?\d+)?$。可自动转换为 Decimal 的字符串示例包括 "0"、"-1.2"、"5E-12" 。我们会尝试将 String 转换为 Decimal,然后截断该 Decimal 的小数位,得到一个 Int
数组 Undefined
Object Undefined
Null Null
未定义 Undefined.

To Boolean

参数类型 结果
Int Undefined。(您可以明确使用 cast 函数使 0 = False,任何非零值 = True。)
Decimal Undefined。(您可以明确使用强制转换函数使 0 = False,任何非零值 = True。)
Boolean 原始值。
String "true"=True 和 "false"=False (不区分大小写)。其他字符串值将为 Undefined
数组 Undefined
Object Undefined
Null Undefined
未定义 Undefined

To String

参数类型 结果
Int 标准表示法中 Int 的字符串表示。
Decimal 科学表示法中 Decimal 值的字符串表示。
Boolean "true" 或 "false"。均为小写。
String 原始值。
数组 Array 序列化为 JSON。结果字符串为逗号分隔的列表,括在方括号中。String 将用引号括起来。DecimalIntBooleanNull 不必如此。
Object 序列化为 JSON 的对象。结果字符串为键值对的逗号分隔列表,以大括号开始并结束。String 将用引号括起来。DecimalIntBooleanNull 不必如此。
Null Undefined
未定义 未定义。

本页内容: