并非所有 Oracle Data Relationship Management 属性定义数据类型在 JavaScript 中都有对应的表示法。对于无对应表示法的任何数据类型,StringValue 和 Value 将相同,您必须确保自己了解字符串值如何解析。如果返回的属性值是这些数据类型之一,您还应负责确保返回该数据类型的相应字符串表示法。如果存储的值没有针对该属性的数据类型的有效转换,则该值为未定义值。
在列表属性返回的数组中,每个元素都包含与该数据类型相对应的类型的对象。例如,使用日期属性标记的列表将返回包含日期对象的数组。
在以下情况下,查找属性可能并不总是返回预期的数据类型:查找目标无效、在查找表中未找到键,或者查找表中的值对该数据类型无效。例如,如果键值对的值为 "TEST",但数据类型为 Date,则结果将为未定义。
以下是 Data Relationship Management 数据类型及其在 JavaScript 中的对应表示法。
表 12-4 数据类型比较
属性定义数据类型 | JavaScript 数据类型 |
---|---|
AscGroup |
NodeObject 数组 |
AscNode |
NodeObject |
AscNodes |
NodeObject 数组 |
Boolean |
Boolean |
Date |
Date |
DateTime |
DateTime |
Float |
Number |
FormatMemo |
String |
GlobalNode |
NodeObject |
Group |
String 数组 |
Hier |
HierObject |
Hierarchy Group |
String(层次组名称) |
Hyperlink |
String(表示 URL) |
Integer |
Number |
LeafNode |
LocalNodeObject |
LimbNode |
LocalNodeObject |
ListGroup |
String 数组 |
Memo |
String |
MultiNode |
LocalNodeObject 数组 |
Node |
LocalNodeObject |
NodeProps |
PropDefObject 数组 |
Query |
String(查询名称) |
Property |
PropDefObject |
Sort |
Number |
SortProp |
PropDefObject |
StdQuery |
String(查询名称) |
String |
String |
Time |
String |
Version |
String(版本名称) |
在调用 JavaScript 派生的其他属性(或其他节点的派生属性)时,因为该派生程序返回的值不会立即转换为其字符串表示法,所以,您可以在派生程序之间传递复杂对象,并将强制转换延迟到返回最终结果之后,可通过对该复杂对象调用 toString() 来进行转换(除非指出进行内置转换,例如,从数组转换)。