Crear un recordset en Coldfusion, serializar resultado   ¡Actualizado recientemente!


Para crear este tipo de estructura de datos en Coldfusion debemos crear la consulta con sus columnas y tipo, agregar las filas y finalmente llenarlas. Al final podemos serializar el resultado.

Crear estructura

<!--- Crear un query especificando el tipo de cada columna. ---> 
<cfset qResult = queryNew("code, name, message","CF_SQL_INTEGER, CF_SQL_VARCHAR, CF_SQL_VARCHAR")> 
<!--- Agregamos las filas. ---> 
<cfset newrow = queryaddrow(qResult, 2)>
<!--- Colocamos los valores en las celdas --->
<!--- Fila 1 --->
<cfset temp = querysetcell(qResult, "code", 1, 1)> 
<cfset temp = querysetcell(qResult, "name", "Charles", 1)> 
<cfset temp = querysetcell(qResult, "message", "Valid User", 1)>
<!--- Fila 2 --->
<cfset temp = querysetcell(qResult, "code", 0, 2)> 
<cfset temp = querysetcell(qResult, "name", "John", 2)> 
<cfset temp = querysetcell(qResult, "message", "Invalid User", 2)>

Serializar resultado

Retornar los valores dentro de una <cffunction>:

<!--- Serializamos resultado --->
<cfreturn serializeJSON(qResult)>

Salida del ejemplo:

{“COLUMNS”:[“CODE”,”NAME”,”MESSAGE”],”DATA”:[[1,”Charles”,”Valid User”],[1,”John”,”Invalid User”]]}

{
"COLUMNS":
["CODE","NAME","MESSAGE"],
"DATA":
[[1,"Charles","Valid User"],
[0,"John","Invalid User"]]
}

Estructurar resultado

método disponible a partir de ColdFusion 11

<!--- Serializamos resultado con estructura --->
<cfreturn serializeJSON(qResult,"struct")>

Resultado:

[
 {
 "CODE": 1,
 "NAME": "Charles",
 "MESSAGE": "Valid User"
 },
 {
 "CODE": 1,
 "NAME": "John",
 "MESSAGE": "Invalid User"
 }
]

Otra forma de realizarlo es agregando los siguientes parámetros al url:

service.cfc?method=getPeople&returnformat=json&queryformat=struct

LINKS:

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0e4fd-7ffc.html#WSc3ff6d0ea77859461172e0811cbec22c24-627a

https://www.raymondcamden.com/2014/05/08/ColdFusion-11s-new-Struct-format-for-JSON-and-how-to-use-it-in-ColdFusion-10/


Acerca de darkaw_remse

Administrador de poca monta, mi interes principal dentro de la informatica es la programacion web, entusiasta de las nuevas tecnologias en hardware y software. Sueño con tener un sitio que cobre inteligencia propia =p

Deja un comentario