Moyen le plus rapide de convertir XML en JSON en Java

Quels sont les bons outils pour convertir rapidement et facilement XML en JSON en Java?

JSON en Java a d’excellentes ressources.

Dépendance Maven:

  org.json json 20171018  

XML.java est la classe que vous recherchez:

 import org.json.JSONObject; import org.json.XML; public class Main { public static int PRETTY_PRINT_INDENT_FACTOR = 4; public static Ssortingng TEST_XML_STRING = "Turn this to JSON"; public static void main(Ssortingng[] args) { try { JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING); Ssortingng jsonPrettyPrintSsortingng = xmlJSONObj.toSsortingng(PRETTY_PRINT_INDENT_FACTOR); System.out.println(jsonPrettyPrintSsortingng); } catch (JSONException je) { System.out.println(je.toSsortingng()); } } } 

Le résultat est:

 {"test": { "atsortingb": "moretest", "content": "Turn this to JSON" }} 

Pour convertir un fichier XML en JSON, utilisez la dépendance suivante

  org.json json 20140107  

et vous pouvez télécharger Jar de Maven Repository ici . Ensuite, implémentez comme:

 Ssortingng soapmessageSsortingng = "yourSsortingngURLorFILE"; JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageSsortingng); System.out.println(soapDatainJsonObject); 

Le seul problème avec JSON dans Java est que si votre XML a un seul enfant, mais est un tableau, il le convertira en un object au lieu d’un tableau. Cela peut poser des problèmes si vous convertissez toujours dynamicment de XML en JSON, où si votre exemple XML ne comporte qu’un seul élément, vous retournez un object, mais s’il a 2+, vous retournez un tableau, ce qui peut entraîner des problèmes d’parsing pour les utilisateurs JSON.

La classe XML2JSON d’ Infoscoop a un moyen de baliser les éléments qui sont des tableaux avant de procéder à la conversion, afin que les tableaux puissent être correctement mappés, même s’il n’y a qu’un seul enfant dans le XML.

Voici un exemple d’utilisation (dans un langage légèrement différent, mais vous pouvez également voir comment les tableaux sont utilisés à partir de la méthode nodelist2json () du lien XML2JSON).

J’ai téléchargé le projet que vous pouvez ouvrir directement dans eclipse et l’exécuter https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA

Je vous remercie

Je ne sais pas quel est votre problème exact, mais si vous recevez du XML et que vous voulez renvoyer JSon (ou quelque chose du genre), vous pouvez également consulter JAX-B. Ceci est une norme pour la mise en ordre / désarrangement des Java POJO en XML et / ou Json. Plusieurs bibliothèques implémentent JAX-B, par exemple CXF d’Apache.

J’ai trouvé cela simple et rapide: Utilisé: org.json.XML class de java-json.jar

  if (statusCode == 200 && inputStream != null) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); SsortingngBuilder responseStrBuilder = new SsortingngBuilder(); Ssortingng inputStr; while ((inputStr = bufferedReader.readLine()) != null) { responseStrBuilder.append(inputStr); } jsonObject = XML.toJSONObject(responseStrBuilder.toSsortingng()); }