JSONP (JavaScript Object Notation with Padding) は、 JavaScript Object Notation (JSON) 形式の拡張です。
WebSphere® Message Broker は、JSONP サービスのサポートを提供します。 JSONP サービス、 または Remote JSON Service は、ユーザー定義の JavaScript 関数呼び出しを付加した JSON データを返す Web サービスです。 JSONP 応答メッセージは、実行可能スクリプトとして解釈できます。そのためこの機能を使用してクロスドメイン関数呼び出しを作成できます。
http://brokerhost:7080/flowUrlPathSuffix?jsonp=scriptFn
scriptFn(response)
JSON メッセージ・ツリーは、最上位の Padding エレメントを提供し、ここに JSON パーサーはクライアント・サイドの JSONP 関数名を入れます。 同様に、最上位のエレメント Padding がツリーに存在する場合、JSON シリアライザーは JSON メッセージに付加情報を補います。
JSON の詳細については、JSON パーサーおよびドメインを参照してください。
WebSphere Message Broker を使用して JSONP サービスを提供する方法については、JSONP サービスの提供を参照してください。
WebSphere Message Broker を使用して JSONP サービス応答をコンシュームする方法については、JSONP サービス応答のコンシュームを参照してください。
以下の例は、 単純な JSONP メッセージを示しています。
scriptFn (
{
"name" : "John Doe",
"age" : -1.0,
"known" : false,
"address" : { "street" : null,
"city" : "unknown" },
"belongings" : ["item1", "item2", "item3"]
}
)
この JSONP 入力によって、以下のブローカー論理メッセージ・ツリーが生成されます。
(0x01000000:Object):JSON = ( ['json' : 0xd55fc8]
(0x03000000:NameValue):Padding = 'scriptFn' (CHARACTER)
(0x01000000:Object ):Data = (
(0x03000000:NameValue):name = 'John Doe' (CHARACTER)
(0x03000000:NameValue):age = -1E+0 (FLOAT)
(0x03000000:NameValue):known = FALSE (BOOLEAN)
(0x01000000:Object ):address = (
(0x03000000:NameValue):street = NULL
(0x03000000:NameValue):city = 'unknown' (CHARACTER)
)
(0x01001000:Array ):belongings = (
(0x03000000:NameValue):Item = 'item1' (CHARACTER)
(0x03000000:NameValue):Item = 'item2' (CHARACTER)
(0x03000000:NameValue):Item = 'item3' (CHARACTER)
)
)
)