JSONP (JavaScript Object Notation with Padding) es una extensión del formato JavaScript Object Notation (JSON).
WebSphere Message Broker proporciona soporte para servicios JSONP. Un servicio JSONP o servicio JSON remoto, es un servicio web que devuelve datos JSON rellenados con una llamada de función JavaScript definida por el usuario. El mensaje de respuesta JSONP se puede interpretar como un script ejecutable, por lo que esta funcionalidad se puede utilizar para crear llamadas a función de dominios cruzados.
http://brokerhost:7080/flowUrlPathSuffix?jsonp=scriptFn
scriptFn(response)
El árbol de mensaje JSON proporciona un elemento de nivel superior Padding, en el que el analizador JSON coloca el nombre de la función JSONP del lado del cliente. Del mismo modo, el serializador JSON rellena un mensaje JSON si el elemento de nivel superior Padding está presente en el árbol.
Para obtener más información acerca de JSON, consulte Analizador y dominio JSON.
Para obtener información sobre cómo utilizar WebSphere Message Broker para proporcionar un servicio JSONP, consulte Proporcionar un servicio JSONP.
Para obtener información sobre cómo utilizar WebSphere Message Broker para utilizar una respuesta al servicio JSONP, consulte Consumo de una respuesta al servicio JSONP.
El ejemplo siguiente muestra un mensaje JSONP simple:
scriptFn (
{
"name" : "John Doe",
"age" : -1.0,
"known" : false,
"address" : { "street" : null,
"city" : "unknown" },
"belongings" : ["item1", "item2", "item3"]
}
)
Esta entrada JSONP genera el siguiente árbol lógico de mensaje de intermediario:
(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)
)
)
)