Formatos de salida de mensaje

Con la adición de un nuevo parámetro de control HTTP de servicio web, puede especificar qué formato de salida desea generar para los mensajes de salida con los enlaces HTTP de tipo REST.

Puede utilizar el parámetro de control outputFormat opcional para especificar el formato de los mensajes de salida de la ejecución de una operación en un servicio web. Si especifica un valor para el parámetro outputFormat cuando despliega un servicio web, el formato de salida especificado se utilizará cada vez que se ejecute una operación en el servicio web. Si no especifica un valor para el parámetro en el despliegue, cuando se ejecuta una operación en el servicio web, se puede especificar un formato de salida. Si no se especifica un formato de salida en el tiempo de ejecución, se utiliza el formato de salida por omisión.

El enlace HTTP determina el formato de salida por omisión, tal como se muestra en la Tabla 1.

Tabla 1. Formato de salida por omisión de los enlaces HTTP
Enlace Formato de salida por omisión Tipo MIME
HTTP GET XML texto/xml
HTTP POST (codificado para url) XML texto/xml
HTTP POST (xml) XML texto/xml
HTTP POST (json) JSON aplicación/json
Excepciones de formato de salida
SOAP
Con un enlace SOAP, no se puede influir en el formato de salida. El formato de salida es siempre XML.
Salida XSL
Si se asigna un XSL a una operación para transformar el mensaje de salida, se ignora el parámetro de control outputFormat. En este caso, el formato y el tipo MIME vienen determinados por el XSL.

Formato de salida JSON por omisión

El formato de salida JSON por omisión sigue la especificación JSON que se describe en www.json.org.

Nombre de columna
Los nombres de columna se convierten en nombres de objeto JSON.
Tipos de datos
Para el formato de salida JSON se utilizan las mismas conversiones de tipos de datos que para el formato de salida XML.
  • Los valores de fecha/hora utilizan el formato de fecha/hora XSD y se representan como series JSON. En JSON no existen formatos de fecha/hora.
  • Los valores binarios son series JSON codificadas en base64.
  • Todos los números se correlacionan con números JSON.
  • SQL NULL está correlacionado con el nulo JSON.
  • XML está incorporado como una serie JSON.
  • El booleano SQL está correlacionado con el booleano JSON.
Formatos de salida por tipo de operación
La siguiente información describe los distintos formatos basados en los tipos de operación.
SQL SELECT (conjunto de resultados)
Un conjunto de resultados se devuelve como una matriz JSON. En el siguiente ejemplo se muestra un conjunto de resultados con información devuelta para varios empleados.
{"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", ...}
    ]
}
Si se ha seleccionado el recuadro de selección Captar solamente fila individual para consultas al definir la operación, se devuelve un objeto JSON para la primera fila de la consulta, en lugar de una matriz JSON. El siguiente código muestra un ejemplo de la primera fila de una consulta devuelta como un objeto JSON.
{"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 o MERGE) (recuento de actualizaciones)
El siguiente código es un ejemplo del formato de mensaje JSON de una operación SQL UPDATE con un recuento de actualizaciones.
{"updateEmployeeResponse":{"updateCount":1}}
Llamada a procedimiento almacenado
El siguiente código muestra una matriz JSON para cada conjunto de filas devuelto de la llamada a procedimiento almacenado.
{"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
Los resultados de una XQuery se devuelven como una matriz JSON. El siguiente ejemplo muestra los resultados de XQuery en una matriz JSON:
{"testXQueryResponse":
    [
        "Basic Snow Shovel, ",
        "A Deluxe Snow Shovel ...",
        ...
    ]
}
Si se ha seleccionado el recuadro de selección Captar solamente fila individual para consultas al definir la operación, se devuelve un objeto JSON para la primera fila de los resultados de XQuery, en lugar de una matriz JSON. El siguiente código muestra un ejemplo del primer valor de serie de los resultados de XQuery devueltos como un objeto JSON.
{"testXQueryResponse":
    "Basic Snow Shovel, "
}

Comentarios