2.5.2.2 JSONデータ・マッピング

次の表に、様々なTuxedoバッファ・タイプとJSONとの変換を示します:

表2-16 JSONデータ・マッピング

Oracle Tuxedoバッファ・タイプ JSON同等/例 ノート
STRING <buffer content> -
CARRAY <binary buffer content> -
MBSTRING <Multi-byte string> UTF-8以外のエンコーディングを転送するには、SALTDEPLOY構成のenableMultiEncodingプロパティをtrueに設定する必要があります。
XML <XML fragment as-is> UTF-8以外のエンコーディングを転送するには、SALTDEPLOY構成のenableMultiEncodingプロパティをtrueに設定する必要があります。
X_C_TYPE VIEW/VIEW32と同じ -
X_COMMON VIEW/VIEW32と同じ -
X_OCTET CARRAYと同じ -
VIEW/VIEW32
{'<fieldname>':'<fieldcontent>',
'<fieldname>':'<fieldcontent>}

ネスト可能:

{<fieldname>':{'<fieldname>':'<fieldcontent>'}}

JSONには次のプリミティブ型があります:

ブール(true/false)

数値(intまたはdouble float)

文字列

VIEW/VIEW32フィールド・タイプは次のようにマップされます(Tuxedoタイプ: JSONタイプ):

  • short: 数値
  • int: 数値
  • long: 数値
  • float: 数値
  • double: 数値
  • char: 文字列
  • string: 文字列
  • carray
  • bool: ブール
  • unsigned char: 文字列
  • signed char: 文字列
  • wchar_t*またはwchar_t: 文字列
  • unsigned int: 数値
  • unsigned long: 数値
-
-
  • long double: 文字列(ノートを参照)
  • mbstring: 文字列
  • view32: ネストされたJSONレコード
フィールド名マッピングの詳細は、VIEW/VIEW32の考慮事項と例を参照してください。

一部のタイプは、プリミティブ型(long longlong double)で表現される場合は切り捨てられます。その場合、それらはJSON文字列としてレンダリングされます。

FML/FML32 {'<fieldname>':'<fieldcontent>','<fieldname>':'<fieldcontent>'}

ネスト可能、FML32のみ:

{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}

FML/FML32フィールド・タイプは次のようにマップされます(Tuxedoタイプ: JSONタイプ):

  • FLD_SHORT: 数値
  • FLD_LONG: 数値
  • FLD_FLOAT: 数値
  • FLD_DOUBLE: 数値
  • FLD_CHAR: 文字列またはJSON trueの文字TまたはJSON falseのF
  • FLD_CARRRAY: 文字列(base64エンコード)
  • FLD_MBSTRING: 文字列
  • FLD_VIEW32: JSONネスト・レコード、個々のタイプについては、VIEW/VIEW32マッピングを参照

ネストFLD_VIEW32: ビュー・サブタイプの名前は組込みVIEW32の名前である必要があります。例:

VIEW32example .v定義ファイル:

VIEW v32 example
charflag1 - 1 ---
string str - 1 100
- -
JSON content (EVIEW32 is a FLD_VIEW32 fml32 type):
{"EVIEW32" :
 {"v32example":
{"flag1":"x",
"str":"somestring"}
}
}
RECORD {'<fieldname>':'<fieldcontent>','<fieldname>':'<fieldcontent>'}

ネスト可能:

{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}

RECORDバッファ・フィールド・タイプは次のようにマップされます(Tuxedoタイプ: JSONタイプ):

RECORD: Number

COMP-1: Number

COMP-2: Number

S9(18): Number

9(18): Number

S9(9): Number

9(9): Number

S9(4): Number

S9(10)V9(10)COMP-3L: Number

X(1024): String

@binary=true: String

-

ノート:

  • 非構造化バッファ・タイプ(STRINGCARRAYX_OCTETMBSTRING)はデータをJSONオブジェクトとしてラップしません。データはそのまま転送されます。データのマッピングに関するバッファ・タイプのcontent-type設定は無視されます。
  • JSONでは、すべての浮動小数点型はXMLとは異なり内部的に処理されます。XMLでの浮動小数点の変換では、JSONの類似の変換に比べて精度が多少失われます。これは現時点での制約です。