Aprende a devolver una cadena JSON como respuesta de una acción en Symfony 1.4

JSON, el formato ligero que se utiliza para el intercambio de datos entre aplicaciones, se utiliza ampliamente en todos los tipos de aplicaciones web que se han escrito en cualquier lenguaje, por ejemplo, PHP, Ruby, etc. Para devolver una respuesta JSON de una acción en el Symfony 1.4 heredado, Deberá cambiar el tipo de contenido de la respuesta como primero; de lo contrario, terminará devolviendo una cadena sin un encabezado específico con el formato que está enviando. El tipo de contenido correcto de JSON es application/json. Finalmente devuelve el resultado del método $this->renderText de la acción de Symfony que espera como primer argumento la cadena codificada JSON (usa json_encode):

<?php

/**
 * Un archivo actions.class.php de cualquiera de los módulos de tu aplicación.
 *
 */
class mymoduleActions extends sfActions 
{
    /**
     * Actualiza el estado de un módulo via AJAX.
     * 
     * @param sfWebRequest $request
     * @return type
     */
    public function executeMyActionWithJsonResponse(sfWebRequest $request){
        // Your action logic

        // Establecer el formato de respuesta en json
        $this->getResponse()->setHttpHeader('Content-type','application/json');
        
        // ¡Use renderText para devolver una matriz codificada en json!
        return $this->renderText(json_encode(array(
            "foo" => "bar"
        )));
    } 
}

La respuesta de la acción MyActionWithJsonResponse será una cadena JSON a saber:

{"foo":"bar"}

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores