Conversion de JSON en XML en Java

Je suis nouveau sur json. J’ai un programme pour générer xml à partir d’object json.

Ssortingng str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsCompatibility( false ); Ssortingng xml = xmlSerializer.write( json ); System.out.println(xml); 

le résultat est:

  123true2.01JSON42 

Mon plus gros problème est de savoir comment écrire mes propres atsortingbuts au lieu de json_type = “number” et écrire mes propres sous-éléments comme.

Utilisez la bibliothèque (excellente) JSON-Java de json.org puis

 JSONObject json = new JSONObject(str); Ssortingng xml = XML.toSsortingng(json); 

toSsortingng peut prendre un deuxième argument pour fournir le nom du noeud racine XML.

Cette bibliothèque est également capable de convertir XML en JSON en utilisant XML.toJSONObject(java.lang.Ssortingng ssortingng)

Vérifiez le Javadoc

Lien vers le repository github

POM

  org.json json 20160212  

poste original mis à jour avec de nouveaux liens

Si vous avez un fichier dtd valide pour le XML, vous pouvez facilement transformer json en xml et xml en json en utilisant le binary eclipselink jar.

Référer ceci: http://www.cubicrace.com/2015/06/How-to-convert-XML-to-JSON-format.html

L’article contient également un exemple de projet (y compris les fichiers JAR fournis par un tiers) sous forme de fichier zip pouvant être téléchargé à des fins de référence.

Si vous voulez remplacer une valeur de noeud, vous pouvez faire comme ceci

 JSONObject json = new JSONObject(str); Ssortingng xml = XML.toSsortingng(json); xml.replace("old value", "new value"); 

Transformer avec XSLT 3.0 est la seule façon appropriée de le faire, pour autant que je sache. Il est garanti pour produire du XML valide, et une structure agréable à cela. https://www.w3.org/TR/xslt/#json

Il existe une librairie de soulignement java avec la méthode statique jsonToXml. Exemple en direct.

Exemple de code:

 import com.github.underscore.lodash.U; import java.util.Map; public class MyClass { @SuppressWarnings("unchecked") public static void main(Ssortingng args[]) { Ssortingng str = "{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\":{\"id\":42},\"array\":[1,2,3]}"; System.out.println(json); Ssortingng xml = U.jsonToXml(json); System.out.println(xml); } }