JSONコンテンツ・パターン
「RESTアダプタ」を使用して、次の共通パターンをJSONコンテンツとともに実装できます。
高精度およびスケールでJSON番号を許可
高精度およびスケールのJSON数値の場合、Oracle Integrationは自動的に数値を小数点以下4桁に変換します。 この変換を防ぐには、使用しているアダプタに基づいて複数のオプションがあります。
- 「RESTアダプタ」の場合、マッパーで「高精度数の許可」接続プロパティを設定して、高精度およびスケールでJSON番号を許可する必要があります。
この接続プロパティのデフォルト値はfalseです。 Oracle Integrationは、デフォルトで精度スケールを4桁(10進数)に制限します。 高精度スケールの場合、このプロパティをtrueに設定します。 このプロパティ値は、未定義の精度が無限の精度を意味しないため、慎重に使用してください。

- レスポンス処理用のスキーマを提供する他のすべてのアダプタには、次のスキーマ注釈が含まれます。
<xs:schema xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd" nxsd:version="JSON" nxsd:allowHighPrecisionNumbers="true">小数点以下10桁を超えるRESTレスポンスを受信した場合、Oracle IntegrationはそれをXMLに変換しますが、値は四捨五入しません。
このスキーマ注釈を使用しない場合、値は小数第4位で四捨五入されます。
RESTアダプタ・リクエストがマルチパート/フォーム・データを使用して構成される場合のJSONのマップ
JSONは、「RESTアダプタ」リクエストがマルチパート/フォーム・データで構成されている場合(つまり、リクエスト・ページで「リクエストはペイロードでマルチパートです」および「マルチパート・リクエストのタイプはmultipart/form-dataで、HTMLフォーム・ペイロードがあります」のチェック・ボックスが選択されている場合)にマップできます。
JSON文字列はパラメータとして送信できます。 パラメータの名前はjsonInputParametersです。 このパラメータの値は、次に示すJSON文字列です。 値はparameterノードにマップされています。 通常、ParameterListにはパラメータのリストが含まれています。 各パラメータ名はparameter > nameに入り、その値はparameterに入ります。
JSONからXMLへの特殊文字変換
JSONペイロードにXMLで有効でない特殊文字が含まれていると、これらの文字はJSONからXMLに変換されるときに文字列に置き換えられます。
たとえば、次のJSONペイロードがあるとします : { "_id": { "$oid": "52cdef7f4bab8bd67529c6f7" } }
次に、「JSONサンプル」ペイロード形式と<<inline>>を選択して、ペイロードをコピーしてAdapter Endpoint Configuration Wizardのテキスト・フィールドに貼り付けます。
マッパーでは、フィールド$oidは文字列値_0x646c72_oidで表されます。
特殊文字と対応するXML変換文字列のリストは次のとおりです:
| 特殊文字 | マッパーで表される変換された値 |
|---|---|
" " |
_0x737063_ |
"/" |
_0x736c68_ |
"\" |
_0x626c68_ |
":" |
_0x636c6e_ |
";" |
_0x73636e_ |
"(" |
_0x6c7072_ |
")" |
_0x727072_ |
"&" |
_0x616d70_ |
"," |
_0x636d61_ |
"#" |
_0x706e64_ |
"?" |
_0x717374_ |
"<" |
_0x6c7374_ |
">" |
_0x677274_ |
"start" |
_0x737472_ |
"@" |
_0x617472_ |
"$" |
_0x646c72_ |
"{" |
_0x6c6362_ |
"}" |
_0x726362_ |
"%" |
_0x706572_ |
空のJSONオブジェクトの送信
「RESTアダプタ」では、「空のJSONオブジェクト・ペイロードの強制」プロパティで必要に応じて、空のJSONオブジェクト({})の送信を強制できます。 一部のプロバイダには、Concurなどの特別な場合にこの要件があります。 有効な場合、このプロパティは空のJSONオブジェクトを挿入します。
trueに設定すると、選択した動詞に関係なく、RESTコールによって{}が本文に挿入されます。 一部のサード・パーティAPIでは、これは特定のコールの要件です。 デフォルトでは、このプロパティは有効化されていません。
次のステップでは、空のJSONオブジェクトを構成する方法の概要を示します。
JSONで要素名を値としてコピー
JSONでは、要素名を値としてコピーできます。
| JSONサンプル | XSLTマッピング | 説明 |
|---|---|---|
|
|
必要な要素の子要素を反復します。
必要に応じて名前と値を取得します。 |
配列内の単一要素でのJSONオブジェクトの使用
JSONオブジェクトは、配列内の単一要素で使用できます。
| JSONサンプル | XSLTマッピング | 説明 |
|---|---|---|
|
|
JSONの配列は、XMLの繰返し要素です。
XML要素は、JSONオブジェクトのアイテムです。 |



