機械翻訳について

JSONコンテンツ・パターン

「RESTアダプタ」を使用して、次の共通パターンをJSONコンテンツとともに実装できます。

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オブジェクトを挿入します。

このプロパティはConcurおよびOracle Logisticsによって駆動され、デフォルトでは無効になっています。

trueに設定すると、選択した動詞に関係なく、RESTコールによって{}が本文に挿入されます。 一部のサード・パーティAPIでは、これは特定のコールの要件です。 デフォルトでは、このプロパティは有効化されていません。

次のステップでは、空のJSONオブジェクトを構成する方法の概要を示します。

  1. 「RESTアダプタ」を起動接続として統合キャンバスに追加します。
    「Adapter Endpoint Configuration」ウィザードが表示されます。
  2. 「基本情報」ページで「このエンドポイントのリクエスト・ペイロードの構成」を選択します。
    構成するオプションの選択セクションで、このエンドポイントのリクエスト・ペイロードの構成オプションが選択されています

  3. リクエスト・ページで、「リクエストのペイロード形式を選択」リストから「JSONサンプル」を選択し、<<<inline>>>リンクの空のJSONオブジェクトとして{}を指定します。
    「Select the request payload format」リストから「JSON Sample」オプションが選択され、<<<inline>>>リンクが構成されています。

  4. 「RESTアダプタ」の前にあるマッパーを開きます。
  5. マッパーで「空のJSONオブジェクト・ペイロードの強制」ターゲット要素をtrueに設定します。 JavaScriptファンクションtrue()を使用します。 これはマッパーに入力できます。これを囲む必要はありません。 trueのブール値が作成されます。

JSONで要素名を値としてコピー

JSONでは、要素名を値としてコピーできます。

JSONサンプル XSLTマッピング 説明
  • 入力
    {
      "OutputCollection": {
        "Collection": [{
          "ID": 1,
          "NAME": "Name"
        },{
          "ID": 11,
          "NAME": "Name0"
        }]
      }
    }
  • 出力
    {
      "items" : [ {
        "name" : "ID",
        "value" : [ "1" ]
      }, {
        "name" : "NAME",
        "value" : [ "Name" ]
      }, {
        "name" : "ID",
        "value" : [ "11" ]
      }, {
        "name" : "NAME",
        "value" : [ "Name0" ]
      } ]
    }
<xsl:for-each select="/nstrgmpr:execute/nstrgdfl:request-wrapper/nstrgdfl:OutputCollection/nstrgdfl:Collection/*">
  <nstrgdfl:items>
    <nstrgdfl:name>
      <xsl:value-of select="name ()"/>
    </nstrgdfl:name>
    <nstrgdfl:value>
      <xsl:value-of select="current ()"/>
    </nstrgdfl:value>
  </nstrgdfl:items>
</xsl:for-each>
必要な要素の子要素を反復します。

必要に応じて名前と値を取得します。

配列内の単一要素でのJSONオブジェクトの使用

JSONオブジェクトは、配列内の単一要素で使用できます。

JSONサンプル XSLTマッピング 説明
{
  "parameters": [
    {
      "closeAction": "closeAction"
    },
    {
      "closeReason": "closeReason"
    }
  ]
}
<execute>
  <parameters>
    <closeAction>closeAction</closeAction>
  </parameters>
  <parameters>
    <closeReason>closeReason</closeReason>
  </parameters>
</execute>
JSONの配列は、XMLの繰返し要素です。

XML要素は、JSONオブジェクトのアイテムです。