Tenho certeza que muitos desenvolvedores estão familiarizados com XML e JSON , e eles usaram os dois. Portanto, não faz sentido explicar o que são e qual é o seu objetivo, mesmo que seja breve.
Se tentarmos mapear seus conceitos, podemos dizer (me corrija se estiver errado):
- Tags XML são equivalentes a JSON
{}
- Atributos XML são equivalentes às propriedades JSON
- A coleção de tags XML é equivalente a JSON
[]
A única coisa em que consigo pensar, que não existe no JSON, é o XML Namespaces .
A questão é, considerando esse mapeamento e considerando que o JSON é muito mais leve nesse mapeamento, podemos ver um mundo no futuro (ou pelo menos pensar teoricamente em um mundo) sem XML, mas com o JSON fazendo tudo o que XML faz? Podemos usar JSON em qualquer lugar que o XML for usado?
PS: Observe que eu já vi essa pergunta. É algo completamente diferente do que estou perguntando aqui. Assim, por favor, não mencione duplicado .
Respostas:
O que dá ao XML seu poder e muita de sua complexidade é o conteúdo misto. Coisas assim:
Nem tente fazer isso no JSON ou manipule-o nas linguagens de programação convencionais. Eles não foram projetados para o trabalho.
Esse tipo de pergunta geralmente vem de pessoas que esquecem que o M em XML significa marcação. É uma maneira de pegar texto sem formatação e adicionar marcações para criar texto estruturado. Também é bastante útil para dados antiquados, mas não é para isso que foi projetado ou onde estão seus principais pontos fortes. Existem várias maneiras de lidar com dados simples, e o JSON é uma delas.
fonte
A
o elemento B e `bagunça em que estamos! '. É uma matriz, que você pode simplesmente explicar em JSON.A principal diferença, eu acho, é o fato de o XML ser projetado para se auto-explicar com seus dtds e tudo mais.
Com o JSON, você precisa assumir muito sobre os dados que está recebendo.
fonte
Uma tradução literal para JSON geralmente é menos sucinta e menos clara. Considerar:
A representação JSON mais eficaz que eu já vi disso:
Agora, imagine isso para um arquivo XML inteiro. Não estou dizendo que o JSON não tem seu lugar, mas o XML não deve ser descartado.
fonte
(foo (x:bar (@ (x:prop1 "g")) (quuz)))
JSON e XML são duas maneiras de formatar dados. Ambos são capazes de fazê-lo perfeitamente bem, então o JSON pode fazer tudo o que o XML faz? Sim.
Mas ..... Uma pergunta mais relevante pode não ser o que XML / JSON pode fazer, mas o que você pode fazer com XML / JSON.
Existem várias coisas que você pode fazer com XML que eu acho que não com JSON, como traduzir com XLST, pesquisar com XPath e validar com esquemas. Tudo muito, muito útil.
fonte
Há muitas funcionalidades usando XSLT que podem não ser possíveis com JSON. Portanto, se não forem funcionalmente equivalentes, não poderão substituir um ao outro.
fonte
O fato é que teremos que conviver com os dois por um longo tempo, e ser um fanático por JSON é "considerado prejudicial".
fonte
O JSON é relativamente novo e os sistemas legados não o suportam. A atualização de sistemas legados é cara e apresenta bugs. JSON não substituirá XML a qualquer momento no futuro próximo.
fonte
Eu diria que cwallenpoole faz uma excelente observação. Embora a maioria dos XML possa ser convertida para JSON, se é melhor fazê-lo, é um ponto separado.
O JSON se presta a estruturas de dados pelo menos tão bem quanto XML e provavelmente melhor, mas o XML lê muito mais naturalmente que o JSON ao marcar documentos textuais, onde as tags são usadas dentro de um fluxo maior de texto, em vez de simplesmente como uma maneira de delimitar uma hierarquia de campos.
Embora o HTML 5 possa ter seu próprio analisador, isso ainda deixa aplicativos como o DocBook.
fonte
Depende do domínio. Em termos de serviços web? Absolutamente. É totalmente vergonhoso que os fornecedores ainda estejam pressionando o SOAP em seus clientes. REST + JSON todo o caminho.
Agora, quando você está falando de dados complexos e estruturados com informações de estilo, como o Docbook ou outra implementação? Esse é um domínio adequado para XML.
fonte
Por que limitar-se a JSON quando YAML é um superconjunto e muito mais expressivo e, portanto, poderoso que XML ou JSON.
Dito isto, se você usar as estruturas de serialização corretas, poderá serializar e desserializar todos os formatos mencionados acima com algumas linhas simples de código.
fonte
Fica feio quando você tenta modelar esses dois objetos no JSON:
Usando o JSON como é usado em 99% dos casos, perde-se:
E agora você tem que adicionar algumas meta-estruturas e toda a beleza do JSON desaparece enquanto você fica com as desvantagens.
fonte
{ customer: { name: 'John Doe' }, employee : { name: 'John Doe' } }
. Portanto, tecnicamente, sua resposta não está correta. :)<customer><name>John Doe</name></customer><customer><name>John Doe</name></customer>
em JSON?Não sei se existe esse recurso para JSON, mas no .NET pelo menos você pode validar XML em um determinado esquema. Essa é uma vantagem valiosa do XML aos meus olhos.
fonte