JSONP (JavaScript Object Notation with Padding) ist eine Erweiterung des Formats JavaScript Object Notation (JSON).
WebSphere Message Broker bietet Unterstützung für JSONP-Services. Ein JSONP-Service bzw. ein Remote JSON-Service ist ein Web-Service, der durch einen benutzerdefinierten JavaScript-Funktionsaufruf aufgefüllte JSON-Daten zurückgibt. Die JSONP-Antwortnachricht kann als ausführbares Script interpretiert werden; diese Funktionalität kann daher zur Erstellung domänenübergreifender Funktionsaufrufe verwendet werden.
http://brokerhost:7080/flowUrlPathSuffix?jsonp=scriptFn
scriptFn(response)
Die JSON-Nachrichtenbaumstruktur stellt ein übergeordnetes Padding-Element bereit, in das der JSON-Parser den Namen der clientseitigen JSONP-Funktion einfügt. Auch bei der JSON-Serialisierung wird eine JSON-Nachricht aufgefüllt, wenn die Baumstruktur das übergeordnete Padding-Element enthält.
Weitere Informationen zu JSON finden Sie im Abschnitt JSON-Parser und -Domäne.
Weitere Informationen zur Verwendung des WebSphere Message Broker für die Bereitstellung eines JSONP-Service finden Sie im Abschnitt JSONP-Service bereitstellen.
Weitere Informationen zur Verwendung des WebSphere Message Broker für die Verarbeitung der Antworten eines JSONP-Service finden Sie im Abschnitt Antwort eines JSONP-Service verarbeiten:
Das folgende Beispiel zeigt eine einfache JSONP-Nachricht:
scriptFn (
{
"name" : "John Doe",
"age" : -1.0,
"known" : false,
"address" : { "street" : null,
"city" : "unknown" },
"belongings" : ["item1", "item2", "item3"]
}
)
Durch diese JSONP-Eingabe generiert der Broker folgende logische Nachrichtenbaumstruktur:
(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)
)
)
)