Podemos substituir o XML por JSON inteiramente? [fechadas]

77

Tenho certeza de que muitos desenvolvedores estão familiarizados com XML e JSON , e eles usaram os dois. Assim, não há sentido em explicar o que são e qual é o seu propósito, mesmo que seja breve.

Se tentarmos mapear seus conceitos, podemos dizer (corrija-me se estiver errado):

  1. as tags XML são equivalentes a JSON {}
  2. os atributos XML são equivalentes às propriedades JSON
  3. A coleção de tags XML
  4. é equivalente a JSON []

A única coisa em que consigo pensar, que não existe em JSON, são Namespaces XML .

A questão é, considerando este mapeamento, e considerando que o JSON é muito mais leve neste mapeamento, podemos ver um mundo no futuro (ou pelo menos teoricamente pensar em um mundo) sem XML, mas com o JSON fazendo tudo o que o XML faz? Podemos usar o JSON em todos os locais em que o XML é usado?

PS: observe que eu vi este < pergunta. É algo completamente diferente do que estou perguntando aqui. Assim, por favor, não mencione duplicate .

    
por Saeed Neamati 16.09.2011 / 12:33
fonte

12 respostas

153

O que dá à XML seu poder e muita complexidade é conteúdo misto. Coisas assim:

<p>A <b>fine</b> mess we're in!</p>

Nem tente fazer isso em JSON ou manipule-o em 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 obter texto simples e adicionar marcações para criar texto estruturado. É bastante útil para dados antigos também, mas não é para isso que foi projetado ou onde estão seus principais pontos strongs. Existem várias maneiras de lidar com dados simples, e o JSON é um deles.

    
por 16.09.2011 / 14:04
fonte
31

A principal diferença, eu acho, está no fato de que o XML é projetado para ser auto-explicativo com seus dtd's e tudo mais.

Com o JSON, você precisa assumir muito sobre os dados que está recebendo.

    
por 16.09.2011 / 12:53
fonte
20

Uma tradução literal para o JSON é frequentemente menos sucinta e menos clara. Considere:

<foo>
   <x:bar x:prop1="g">
      <quuz />
   </bar>
</foo>

A representação JSON mais eficaz que vi disso:

{"localName":"foo",
 "children": // you need to have a special array to hold all children
 [
    {"localName": "bar",
     "namespace": "x"
        // once again, to ensure that there are no collisions,
        // attributes should be brought out into their own JSON structure 
        "attributes":[
            {"localName":"prop1",
             "namespace":"x",
             "value":"g"}
        ],
         "children":[
             {"name":"quux"}
         ]
     }
 ]}

Agora, imagine isso para um arquivo XML inteiro. Não estou dizendo que o JSON não tenha seu lugar, mas o XML não deve ser descartado.

    
por 16.09.2011 / 13:10
fonte
14

JSON e XML são formas de formatação de dados. Ambos são capazes de fazer isso perfeitamente, então o JSON pode fazer tudo o que o XML faz? Sim.

Mas ..... Uma questão mais relevante pode não ser o que o XML / JSON pode fazer, mas sim, o que você pode fazer com XML / JSON.

Existem várias coisas que você pode fazer com XML que eu não acho que você pode com JSON, como traduzir com XLST, pesquisar com XPath e validar com esquemas. Tudo muito, muito útil.

    
por 16.09.2011 / 13:04
fonte
11

Há muita funcionalidade usando o XSLT que talvez não seja possível com o JSON. Então, se eles não são funcionalmente equivalentes, eles não poderiam substituir um ao outro.

    
por 16.09.2011 / 12:50
fonte
7

O JSON é relativamente novo e os sistemas legados não o suportam. A atualização de sistemas legados é excessiva e introduz erros. O JSON não substituirá o XML a qualquer momento no futuro próximo.

    
por 16.09.2011 / 12:39
fonte
7

O fato é que teremos que conviver com ambos por um longo tempo, e ser fanático por JSON é "considerado prejudicial".

    
por 16.09.2011 / 14:42
fonte
6

Eu diria que cwallenpoole faz um excelente ponto. Embora a maior parte da XML possa ser traduzida para JSON, se isso é melhor, é um ponto separado.

O JSON se presta a estruturas de dados pelo menos tão bem quanto XML e provavelmente melhor, mas XML é muito mais natural do que JSON ao marcar documentos textuais, onde as tags são usadas em um fluxo maior de texto e não simplesmente como uma maneira de delimitar uma hierarquia de campos.

Embora o HTML 5 possa ter seu próprio analisador, ele ainda deixa aplicativos como o DocBook.

    
por 16.09.2011 / 13:21
fonte
6

Depende do domínio. Em termos de serviços da web? Absolutamente. É totalmente vergonhoso que os fornecedores ainda estejam empurrando o SOAP para 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.

    
por 16.09.2011 / 17:46
fonte
3

Fica feio quando você tenta modelar esses dois objetos em JSON:

<customer><name>John Doe</name></customer>
<employee><name>John Doe</name</employee>

Usando o JSON como é usado em 99% dos casos, um é perdido com:

{ name: "John Doe" } 

E agora você precisa adicionar algumas metaestruturas e toda a beleza do JSON desapareceu enquanto você fica com as desvantagens.

    
por 19.09.2011 / 00:07
fonte
3

Por que limitar-se a JSON quando o YAML é um super conjunto e muito mais expressivo e, portanto, poderoso que XML ou JSON.

Dito isso, 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.

    
por 19.09.2011 / 03:10
fonte
3

Não sei se existe um recurso desse tipo para o JSON, mas no .NET, pelo menos, você pode validar o XML em um determinado esquema. Essa é uma vantagem valiosa do XML aos meus olhos.

    
por 20.09.2011 / 05:37
fonte

Tags