entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Como convertir un Array de Objetos a JSON

Hola, Trabajo con Magento y estoy creando un formulario, que trabaja con Jquery,Ajax,PHP,HTMl
Mi formulario solicita ingresar un email, ese email se verifica si existen en la base de datos, si existe me devuelve un array asociativo el cual me indicaron que no lo puede encodear JSON con la función json_encode(), me indican que tengo que generar un arreglo con los campos que necesito y seguido pasarlo a la función json_encode. pero ya me lie y no encuentro como hacerlo.
la base de datos me devuelve como 20 registros de los cuales yo solo quiero 5.
Alguien que me pudiera dar una luz de esperanza. muchas gracias.

2 Respuestas

2votos

versce123mx Puntos1990

Hola es muy buena tu respuesta, solo que magento trabaja de otra forma mas "compleja", hay que saber que modelo se utiliza seguido saber su metodo magico y realizar una instancia de ellos, sigue siendo codigo PHP pero utilizado de otra forma. se basa en Zend framework.

$data = $this->getRequest()->getParams();         //$data captura lo que trae del formulario
            Mage::log($data);                                 //$hace un log para ver si se recibe el valor

            $email = $data['mail'];                           //guardamos en $email lo que trae el $data seleccionando el id mail

                                                                //Realizamos la consulta peguntando por el email
            $customer = Mage::getModel('customer/customer');

            $customer->setWebsiteId(Mage::app()->getWebsite('admin')->getId());
            $customer->loadByEmail($email);
            $result=array();                                                  

            $result['Id'] = $customer->getId();
            $result['Nombre'] = $customer->getFirstname();
            $result['Email'] = $customer->getemail();
            $result['lastname']=$customer->getLastname();
            $result['middle']=$customer->getMiddlename();

            $dataFormat = $result;                                 

            Mage::log($dataFormat);      
            $this->getResponse()->setBody(json_encode($dataFormat));

2votos

cobasESP Puntos19650

Yo lo que suelo hacer es, hacer la consulta para el email y traigo todos los datos posibles y a la hora de ir sacando los datos en el bucle while o con el cursor, creo un nuevo array limpio, y meto ahi todo:

$nuevoarray = array();
$result = $mysqli->query("miconsulta");
while($fila = $result->fetch_object()){
     $nuevoarray[] = $fila;//Meto todas las columnas de una fila en el array
}

//Con esto consigo un array de objetos, en el que cada objeto es una fila
$nuevoarray[0]->id;
$nuevoarray[0]->email;

//Y asi lo paso a json
echo json_encode("usuario" => $nuevoarray[0]);//Para pasar solo 1 usuario;

echo json_encode("usuarios" => $nuevoarray); //Para crear un json con todos los usuarios

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta