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); } }