Ir al contenido principal

Convertir XML a JSON en PHP

Si eres como yo, usted encuentra XML un verdadero dolor para tratar, pero aún así parece existir con varios servicios web. Si está utilizando Android o AngularJS , estos marcos no pueden procesar XML fuera de la caja, pero pueden JSON.
Con la ayuda de un servidor web con PHP, puede transformar fácilmente las desagradables respuestas XML que obtiene en algo más utilizable como JSON.
PHP tiene un método ingenioso llamado simplexml_load_string y lo que hace es que carga una cadena estructurada XML en un objeto fácil de usar. Supongamos que tiene una variable de cadena llamada $ xmlResponse que tiene el siguiente XML correctamente formateado:
Hacer lo siguiente en PHP nos dará un objeto muy agradable para trabajar con:
Ahora para hacer la conversión completa de objeto a JSON, usaré ZendFramework 2. Sin embargo, las manipulaciones del objeto XML se pueden hacer sin un marco especial o herramienta.
Empecemos por crear una matriz de nuestros empleados:
El código anterior creará un objeto personalizado para cada empleado en el XML y los anexará a una matriz. Esto nos dejará con una serie de objetos de los empleados personalizados a nuestro gusto.

Lo siguiente que queremos hacer es agregar la matriz de empleados a un objeto personalizado que contenga el resto de nuestra información comercial:
Como he mencionado anteriormente, uso ZendFramework 2 por lo que estaré convirtiendo nuestro objeto personalizado utilizando los métodos Json incluidos. Para convertir a JSON, haría una llamada como la siguiente:
Si todo salió bien, el resultado JSON de nuestra respuesta XML debería ser algo así:
Si usted tiene su  webservice y  muestrar la respuesta JSON en lugar del XML en bruto, sus clientes van a tener un tiempo mucho más fácil de absorber.

Comentarios

Entradas populares de este blog

Estrategia Politica ?? Óscar Pérez apareció en Altamira y envió nuevo mensaje. !!

Óscar Pérez, inspector del Cuerpo de Investigaciones, Científicas, Penales y Criminalísticas (Cicpc) que se rebeló en contra del gobierno nacional, hizo una nueva aparición este jueves 13 de julio en Altamira durante la Marcha por los Caídos convocada por la Mesa de la Unidad Democrática (MUD). El funcionario aseguró a las personas y medios en el sitio que el próximo martes 18 de julio los venezolanos saldrán a las calles, sin retorno alguno.   También indicó que el 16 de julio- día que se llevará a cabo el plebiscito para determinar el porcentaje de la población que rechaza la asamblea nacional constituyente- los ciudadanos harán valer sus derechos.  "Es hora de que este narco-gobierno caíga. El 18J  un trancazo general, nacional, sin retorno. Hora cero. La consulta popular se hará. Con dignidad. Estaremos en las calles defendiendo al pueblo", dijo.   El Nacional Web  estuvo presente en el momento. Pérez se subió en una moto y desaparec...

Laravel 5Subir archivos con Laravel 5

En esta entrada vamos a ver cómo  subir archivos con  Laravel 5 , de paso repasaremos algunos otros temas, enrutar controladores, crear modelos y definir algunas de sus propiedades, utilizar blade y su sistema de herencia y cómo guardar el registro del archivo en base de datos comprobando el tipo de extensión. Antes de comenzar debemos recordar que para utilizar las clases HTML y FORM en  laravel 5  debemos hacer la instalación con composer, a continuación dejo una entrada donde puedes revisar un poco más en profundidad sobre este tema . Laravel 5: Las clases HTML y FORM Añadir las clases Html y Form en Laravel 5 Simplemente debemos añadir la siguiente línea al archivo composer.json, justamente en la clave require. JavaScript 1 "illuminate/html" : "5.*" Ahora para que las dependencias se instalen ejecuta el siguiente comando situado en tu proyecto. Shell 1 composer update ...

MUD convoca a trancazo para este lunes 10

La Verdad  / El diputado Juan Andrés Mejía, vocero de la Mesa de la Unidad Democrática, informó sobre la convocatoria para mañana a una jornada de divulgación de las bases de la consulta popular programada para el próximo 16 de julio.  La actividad de mañana está prevista a realizarse desde las 12.00 del mediodía hasta las 2.00 de la tarde.  El parlamentario detalló que la intención es que la misma ciudadanía durante esas dos horas se encargue de explicar sobre el plebiscito y a extender la invitación al proceso.  Mejía llamó a los trabajadores y ciudadanos a usar hojas con consignas y mensajes alusivos al proceso del 16-J.  El bloque opositor señaló que el objetivo de la actividad será destacar los puntos que se activarán para la consulta y metodología. Con este llamado se descarta el llamado a un "plantón nacional" de 10 horas que durante días se ha estado divulgando por las  redes sociales .   Desde la MUD se explicó que el proceso del doming...