数据类型转换

并非所有 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() 来进行转换(除非指出进行内置转换,例如,从数组转换)。