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 HTTPEnlace |
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, "
}