MLE JavaScriptでのJSONのサポート

JavaScriptとJSONデータ型の間でサポートされる変換。

SQLのJSON型の値は、JavaScript値と相互に変換できます。SQLのJSON型とJavaScript値の間の型マッピングは、node-oracledbドライバで使用される型マッピングと連携しています。

ノート:

node-oracledbおよびJSONデータ型の詳細は、node-oracledbのドキュメントを参照してください。

SQLのJSON型の値は、次のようにJavaScript値に変換されます:

  • JSON値がオブジェクトの場合、入力オブジェクトのすべてのフィールドを変換することで同等のJavaScriptオブジェクトに変換されます。

  • JSON値が配列の場合、入力配列のすべての要素を変換することで同等のJavaScript配列に変換されます。

  • JSON値がスカラー値の場合、表A-3の型マッピングに従って同等の値に変換されます。

表A-3 JSON属性の型と値からJavaScriptの型と値へのマッピング

JSON属性の型または値 JavaScriptの型または値
null null
false false
true true
NUMBER Number
VARCHAR2 String
RAW Uint8Array
CLOB String
BLOB UintArray
DATE Date
TIMESTAMP Date
INVERVAL YEAR TO MONTH OracleIntervalYearToMonth
INTERVAL DAY TO SECOND OracleIntervalDayToSecond
BINARY_DOUBLE Number
BINARY_FLOAT Number
配列(複数) 配列(単一)
オブジェクト(複数) 単一のプレーンなJavaScriptオブジェクト

JavaScript型の値は、次のようにSQLのJSON型に変換されます:

  • JavaScript値が表A-4の最初の列のスカラー型のいずれかと一致する場合は、対応する型のJSON値に変換されます。

  • JavaScript値が配列の場合、配列のすべての要素を変換することで、JSON配列に変換されます。Uint8Array値は配列ではなくスカラーとして扱われるため、Uint8Array値はJSON配列ではなくRAW型に変換されます。

  • JavaScript値がオブジェクトであり、配列ではなく、表A-4にリストされているJavaScript型/クラスのいずれにも一致していない場合は、JSONオブジェクトに変換されます。オブジェクトの各フィールドは、適切なマッピングに従って変換されます。

表A-4 JavaScriptの型と値からJSONの属性と値へのマッピング

JavaScriptの型または値 JSON属性の型または値
null null
undefined null
string VARCHAR2
true true
false false
Uint8Array RAW
Number NUMBER
Date DATE
OracleNumber NUMBER
OracleDate DATE
OracleTimestamp TIMESTAMP
OracleTimestampTZ TIMESTAMP WITH TIME ZONE
OracleIntervalYearToMonth INVERVAL YEAR TO MONTH
OracleIntervalDayToSecond INTERVAL DAY TO SECOND
配列(単一) 配列(単一)
オブジェクト(単一) オブジェクト(単一)