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.
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) ... ??? –
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?) –
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. –