2009-07-12 27 views
29

Estoy manipulando pocos datos con PHP, tengo la opción entre Json y XML. Pero no sé qué elegir, nunca trabajé con uno de ellos. Así que quiero el más fácil.Lo que es mejor: Json o XML (PHP)

También me pregunto si hay buenas clases que pueden facilitar el análisis (XML o Json).

Me centro principalmente en la facilidad de uso en lugar de la velocidad y la escala.

+0

Hemos todos respondieron a la pregunta si se asume que vas a estar hablando JSON o XML con algunos tipo de cliente Si no lo eres (por ejemplo, vas a usar HTML como una aplicación PHP "normal"), entonces no usarías ninguno de estos. ¿O estás hablando de serialización en el lado del servidor (por ejemplo, a los archivos) ... ??? –

+0

Dije que voy a manipular los datos con PHP, no sé por qué todos estaban confundidos y hablar sobre el lado del cliente. El servidor tiene algunos datos (descargados de algún lugar) y lo manipulará usando PHP, ¿cuál es el más fácil? Los datos son de pequeño tamaño, pero su estructura es muy complicada, así que quiero los más fáciles de manipular (¿Json o XML?) –

+1

JSON y XML son formatos que usaría para sacar los datos del procesador PHP. En PHP, usaría objetos PHP directos. ¿El proveedor de datos te obliga a elegir entre estos dos formatos? De lo contrario, podría utilizar la serialización de objetos PHP o una base de datos, tal vez. –

Respuesta

37

json.org hace JSON sencillo análisis. SimpleXML hace que XML sea simple para PHP.

Al elegir cuál, realmente depende de su aplicación. Si va a pasar datos a JavaScript para procesarlos en el lado del cliente, entonces recomiendo JSON. IMO, XML es mejor para el intercambio de datos entre sistemas porque es muy bien entendido y legible para los humanos (haciendo que la interpretación sea más fácil para usted). JSON es más pequeño por cable, ya que no hay etiquetas de cierre.

+2

lo mismo que dije. +1 para "realmente depende" –

+7

Estoy de acuerdo con "depende", pero no creo que xml tenga legibilidad de wrt edge en comparación con json; son más o menos similares. Existe el beneficio de tamaño JSON, pero generalmente no importa demasiado: si el tamaño sí importa, los datos de gzip los hacen del mismo tamaño (el mismo contenido de información, etc.). Personalmente elegiría basado en herramientas (facilidad de uso), pero no puedo comentar wrt PHP. Para Java hay muchas herramientas para ambos, supongo que también es cierto para PHP. – StaxMan

+0

Lea esto: http://www.edwardawebb.com/tips/xml-json se trata más acerca de la red, pero también se aplica en parte al análisis. –

1

Si decide utilizar XML SimpleXML, un extremadamente sencillo de usar la biblioteca

1

Si no ha utilizado ya sea, y luego ir por JSON. Las respuestas hasta ahora son correctas, ya que hay mucha ayuda para ambos y comenzarás a funcionar con bastante rapidez. JSON tiene la ventaja adicional de ser menos inflado que XML y puede 'traducirse' fácilmente a javascript cuando está en el cliente

0

Hay una cantidad de artículos (quizás de un solo lado) JSON vs XML en la parte inferior de la página json.org .

Aquí está one.

Generalmente prefiero JSON porque es mucho más adecuado para datos que normalmente representaría, que en mi línea de trabajo serían elementos como vértices, mallas, etc. Dependiendo de sus datos, XML podría ser un formato fino.

1

utilizo JSON con PHP, debido a lo fácil que es:

$arr = array('foo' => 'bar', 'animals' => array('cat', 'dog')); // Create any array. 
$json = json_encode($arr); // Converts any array to JSON. 
+1

¿no puedes convertir una matriz a XML? –

+3

totalmente. xml_encode ($ var, false, "foo"); donde $ var es la matriz, falso para no mostrar id refs, y "foo" es el nombre de la raíz XML. http://www.projectzero.org/sMash/1.0.x/docs/apidocs/PHP/xapidoc/XMLExtension/xml_encode.html –

3

Una cosa a tener en cuenta es que, al menos en la descarga, la diferencia de tamaño entre XML y JSON (XML ser más grande) no es realmente interesante porque usará compresión GZIP sobre HTTP.

Si está seguro de que trabajará con Javascript y nunca tendrá otro tipo de cliente (otro sitio web, un cliente Flash/Flex, lo que sea), entonces JSON es genial y quizás un poco menos sencillo. Por otro lado, hacer XML ahora le ahorra tiempo si alguna vez necesita obtener cosas que trabajen sobre XML.

De todos modos, una buena cosa que hay que hacer es comprobar qué hacen los chicos de Google con LiveHTTPHeaders para Gmail o cualquiera de sus aplicaciones. Estoy bastante seguro de que es XML y no JSON, pero puedes verificarme eso. En todos los casos, hacer lo que hace Google puede ser considerado como "no pensar", pero en general son más inteligentes que yo y tienen muchas más horas-persona para pensar de todos modos :)

+0

la diferencia de tamaño ... no es realmente interesante << Se trata de una sobrecarga de procesamiento. Para archivos grandes (x Gb) también puede ser un problema. He visto muchas aplicaciones de google google "de diseño por contrato". Prefiero XML. –

+0

Hmmm ... sí, si hablamos de archivos enormes, el mundo se vuelve claramente empírico: hay que probar y comparar y tener una idea, creo. JSON es obviamente más rápido que demarshalling de XML ... ¿no es así? –

+1

"" hacer lo que Google hace podría considerarse como "sin pensar", pero en general son más inteligentes que yo y tienen muchas más horas-persona para pensar de todos modos :) " no es verdad Dependerá de muchas cosas, no eligen el "MEJOR", eligen el "MEJOR PARA GMAIL" –

3

Depende.

Ejemplo: Desea colocar su aplicación en un contexto grande (EAI), entonces debe usar XML (tal vez Webservices & WSDL).

Ejemplo2: Si quiere una interfaz de usuario simple, basada en javascript y ajax, debería considerar JSON.

JSON es más útil cuando trabajas con javascript. En la mayoría de los casos, las bibliotecas XML son tan fáciles de usar, que la facilidad de uso es casi la misma.

4

JSON ve sus datos como estructuras conocidas de los lenguajes de programación: mapas/diccionarios (llamados 'objetos' en JSON), matrices y literales. JSON pone estos constructos básicos en jerarquías.

XML también es jerárquico, pero tiene tres partes básicas: elementos (con etiquetas de inicio/final), atributos dentro de elementos y contenido de texto. Los elementos y el contenido de texto se pueden mezclar, por lo que es adecuado para marcar documentos. JSON no es muy bueno para esto.

XML tiene un enorme ecosistema construido a su alrededor con muchas herramientas listas: varios esquemas para verificar que sus documentos XML son válidos, lenguaje de transformación, XPath para navegar su documento, etc. JSON también falta en esta área.

XML es mucho más complejo que JSON. Escribir su propio analizador JSON es fácil y divertido, pero escribir el analizador XML es huge undertaking (seguramente no para alguien que es nuevo en XML). En Javascript, JSON se puede analizar evaluando el texto (aunque esto es bastante inseguro).

Si necesita transferir datos entre dos sistemas, JSON está bien para esto. Si desea usar propiedades más avanzadas de XML (entidades, inclusión automática de otros documentos, esquema, valores de atributos implícitos, etc.) o mezclar contenido y marcado, XML funcionará mejor para usted.

+0

¿No hay libs para manipulaciones de XML tanto en el cliente (básicamente todos los clientes) como en el servidor (PHP)? –

+1

Daniel, estoy seguro de que hay. Mi respuesta se centró más en "JSON vs XML" que en las bibliotecas. Normalmente trabajo con Java, y hay toneladas de bibliotecas para XML en el mundo de Java. En PHP utilicé SimpleXML para mis necesidades (simples), y simplemente funcionó. –

+0

Entendido, Peter, supongo que estaba preguntando cómo ese cuarto párrafo se abrió paso en tu respuesta. Volveré a votar ya que, al leer tu respuesta algunas veces, me di cuenta de que en realidad señalas algo importante: XML tiene un mundo entero (ecosistema como dices): JSON parece no tener eso en absoluto. No es que le interese al interrogador ... :) –

0

El más fácil para comenzar es XML. La razón principal para esto no es el análisis sintáctico (hay muchas librerías para XML y JSON que hacen esto por usted, consulte otras publicaciones), pero la comprensibilidad:

JSON funciona con muchos paréntesis diferentes, cuando mira en sus datos XML probablemente verá cualquier error más rápido. (Suponiendo que sepa, por ejemplo, HTML)

También es posible (pero opcional) crear un XML schema, que hace que la verificación de sus datos sea automáticamente fácil. ¡Esto puede ahorrarle mucho tiempo después!

Cuestiones relacionadas