Nachrichtenausgabeformate

Ein neuer HTTP-Steuerparameter für Web-Services wurde hinzugefügt. Mit diesem können Sie nun angeben, welches Ausgabeformat für Ausgabenachrichten mit REST-ähnlichen HTTP-Bindungen generiert werden soll.

Sie können mit dem optionalen Steuerparameter outputFormat das Format der Ausgabenachrichten angeben, indem Sie eine Operation in einem Web-Service ausführen. Wenn Sie bei der Implementierung eines Web-Service einen Wert für den Parameter outputFormat angeben, wird das angegebene Ausgabeformat bei jeder Ausführung einer Operation in dem Web-Service verwendet. Geben Sie bei der Implementierung keinen Wert für den Parameter an, kann ein Ausgabeformat angegeben werden, wenn eine Operation im Web-Service ausgeführt wird. Wird kein Ausgabeformat während der Ausführung angegeben, wird das Standardausgabeformat verwendet.

Wie die HTTP-Bindung das Standardausgabeformat bestimmt, können Sie in Tabelle 1 sehen.

Tabelle 1. Standardausgabeformat für HTTP-Bindungen
Bindung Standardausgabeformat MIME-Typ
HTTP GET XML text/xml
HTTP POST (URL-codiert) XML text/xml
HTTP POST (xml) XML text/xml
HTTP POST (JSON) JSON application/json
Ausnahmen beim Ausgabeformat
SOAP
Bei einer SOAP-Bindung kann das Ausgabeformat nicht beeinflusst werden. Das Ausgabeformat ist immer XML.
XSL-Ausgabe
Wenn einer Operation eine XSL zum Umsetzen der Ausgabenachricht zugeordnet wurde, wird der Steuerparameter outputFormat ignoriert. In diesem Fall werden das Format und der MIME-Typ von der XSL bestimmt.

Standard-JSON-Ausgabeformat

Das Standard-JSON-Ausgabeformat entspricht der JSON-Spezifikation, die Sie unter der folgenden Internetadresse finden können: www.json.org.

Spaltennamen
Spaltennamen werden zu JSON-Objektnamen.
Datentypen
Für das JSON-Ausgabeformat werden dieselben Datentypkonvertierungen verwendet wie für das XML-Ausgabeformat.
  • Datums- und Zeitwerte verwenden das XSD-Datums- und Zeitformat und werden als JSON-Zeichenfolgen dargestellt. Es gibt in JSON keine Datums- und Zeitformate.
  • Binärwerte sind Base64-codierte JSON-Zeichenfolgen.
  • Alle Zahlen werden JSON-Zahlen zugeordnet.
  • Der SQL-Nullwert wird dem JSON-Nullwert zugeordnet.
  • XML wird als JSON-Zeichenfolge integriert.
  • Boolesche SQL-Werte werden booleschen JSON-Werten zugeordnet.
Ausgabeformate nach Operationstyp
Die folgenden Informationen beschreiben die unterschiedlichen Formate, die auf den Operationstypen basieren.
SQL SELECT (Ergebnismenge)
Eine Ergebnismenge wird als ein JSON-Array zurückgegeben. Im folgenden Beispiel wird eine Ergebnismenge mit Informationen gezeigt, die für mehrere Mitarbeiter zurückgegeben wird.
{"getEmployeesResponse":
    [
        {
        "EMPNO":"000010",
        "FIRSTNME":"CHRISTINE",
        "MIDINIT":"I",
        "LASTNAME":"HAAS",
        "WORKDEPT":"A00",
        "PHONENO":"3978",
        "HIREDATE":"1995-01-01Z",
        "JOB":"PRES    ",
        "EDLEVEL":18,
        "SEX":"F",
        "BIRTHDATE":"1963-08-24Z",
        "SALARY":96800.00,
        "BONUS":21113.19,
        "COMM":4220.00},
        {
        "EMPNO":"000020",
        "FIRSTNME":"MICHAEL",
        "MIDINIT":"L",
        "LASTNAME":"THOMPSON", ...}
    ]
}
Wenn das Kontrollkästchen Für Abfragen nur einzelne Zeile abrufen bei der Definition einer Operation ausgewählt wurde, wird ein JSON-Objekt für die erste Zeile der Abfrage anstatt eines JSON-Arrays zurückgegeben. Der folgende Code zeigt ein Beispiel für die erste Zeile einer Abfrage, die als JSON-Objekt zurückgegeben wird.
{"getEmployeesResponse":
    {
    "EMPNO":"000010",
    "FIRSTNME":"CHRISTINE",
    "MIDINIT":"I",
    "LASTNAME":"HAAS",
    "WORKDEPT":"A00",
    "PHONENO":"3978",
    "HIREDATE":"1995-01-01Z",
    "JOB":"PRES    ",
    "EDLEVEL":18,
    "SEX":"F",
    "BIRTHDATE":"1963-08-24Z",
    "SALARY":96800.00,
    "BONUS":21113.19,
    "COMM":4220.00}
}
SQL UPDATE (INSERT, DELETE oder MERGE) (Aktualisierungszähler)
Der folgende Code ist ein Beispiel für das JSON-Nachrichtenformat für eine SQL-Operation UPDATE mit Aktualisierungszähler.
{"updateEmployeeResponse":{"updateCount":1}}
Aufruf einer gespeicherten Prozedur
Der folgende Code zeigt ein JSON-Array für jede Zeilengruppe, das vom Aufruf einer gespeicherten Prozedur zurückgegeben wird.
{"BONUS_INCREASEResponse":
    {
    "P_DEPTSWITHOUTNEWBONUSES":"",
    "P_COUNTDEPTSVIEWED":8,
    "P_COUNTDEPTSBONUSCHANGED":8,
    "P_ERRORMSG":"",
    "rowset":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
    "rowset2":
        [
            {
            "WORKDEPT":"A00",
            "EMPNO":"000010",
            "BONUS":25546.95},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000110",
            "BONUS":22992.12},
            {
            "WORKDEPT":"A00",
            "EMPNO":"000120",
            ...}
        ],
        ...
    }
}
XQuery
Die Ergebnisse einer XQuery-Anweisung werden als ein JSON-Array zurückgegeben. Im folgenden Beispiel werden die XQuery-Ergebnisse in einem JSON-Array gezeigt:
{"testXQueryResponse":
    [
        "Basic Snow Shovel, ",
        "A Deluxe Snow Shovel ...",
        ...
    ]
}
Wenn das Kontrollkästchen Für Abfragen nur einzelne Zeile abrufen bei der Definition einer Operation ausgewählt wurde, wird ein JSON-Objekt für die erste Zeile der XQuery-Ergebnisse anstatt eines JSON-Arrays zurückgegeben. Der folgende Code zeigt ein Beispiel für den ersten Zeichenfolgewert der XQuery-Ergebnisse, die als JSON-Objekt zurückgegeben werden.
{"testXQueryResponse":
    "Basic Snow Shovel, "
}

Feedback