2012-05-03 24 views
17

JSON richiede un elemento radice come nel caso xml. Per quanto ne so, questa è una stringa JSON valida.Elemento radice JSON

{ 
    "email":[ 
     { 
      "type":"home", 
      "name":"[email protected]" 
     }, 
     { 
      "type":"work", 
      "name":"[email protected]" 
     } 
    ] 
} 

Ho bisogno di convertire json in xml un vice versa. Tuttavia anche se quanto sopra è un json valido quando lo converto in xml non è valido? Mi sto perdendo qualcosa o è normale?

+0

Quale libreria stai utilizzando per la conversione e quale errore mostra? –

risposta

21

Il livello più esterno di un documento JSON è un "oggetto" (parentesi graffe) o un "array" (parentesi quadre).

Qualsiasi software che converta JSON in XML deve conciliare il fatto che si tratta di modelli di dati diversi con regole diverse. Diversi strumenti di conversione gestiscono queste differenze in modi diversi.

+2

Hai un riferimento canonico per questo? Non posso convalidarlo da nessuna parte. Sembra che qualsiasi elemento formattato correttamente (array, oggetto, stringa, numero, ecc.) Sia tecnicamente un elemento radice JSON valido, sebbene i primi due siano gli unici che possono avere figli. – GrayWizardx

+7

In realtà ci sono due diverse specifiche JSON. RFC 4627 richiede che un testo JSON sia un oggetto o un array. ECMA-262, 5a edizione, sezione 15.12 non impone questa restrizione. –

+1

Sembra che [RFC 7159, sezione 2 "JSON Grammatica"] (https://tools.ietf.org/html/rfc7159#section-2) abbia rimosso questa restrizione e ora consenta qualsiasi valore come "root". –

2

Questo è normale, json e xml non hanno le stesse regole. Puoi trasferire le parentesi radice "{" e "}" in un elemento radice per assicurarti di non avere problemi di conversione

Problemi correlati