Moyen le plus rapide de convertir XML en JSON en Java [fermé]


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

Author: Benjamin, 2009-12-01

6 answers

JSON en Java a quelques grandes ressources.

Dépendance Maven:

<dependency>
  <groupId>org.json</groupId>
  <artifactId>json</artifactId>
  <version>20171018</version>
</dependency>

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 String TEST_XML_STRING =
        "<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";

    public static void main(String[] args) {
        try {
            JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
            String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
            System.out.println(jsonPrettyPrintString);
        } catch (JSONException je) {
            System.out.println(je.toString());
        }
    }
}

La sortie est:

{"test": {
    "attrib": "moretest",
    "content": "Turn this to JSON"
}}
 141
Author: danieltalsky, 2017-12-04 12:48:36

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

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

Et vous pouvez Télécharger Jar depuis le référentiel Maven ici. Ensuite, implémentez comme:

String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
 49
Author: Krishna, 2015-06-16 19:52:36

Le seul problème avec JSON en Java est que si votre XML a un seul enfant, mais est un tableau, il le convertira en objet au lieu d'un tableau. Cela peut causer des problèmes si vous convertissez toujours dynamiquement de XML en JSON, où si votre exemple XML n'a qu'un seul élément, vous renvoyez un objet, mais s'il a 2+, vous renvoyez un tableau, ce qui peut causer des problèmes d'analyse pour les personnes utilisant le JSON.

La classeXML2JSON d'Infoscoop a un moyen de marquer les éléments qui sont tableaux avant d'effectuer 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.

Voiciun exemple de son utilisation (dans un langage légèrement différent, mais vous pouvez également voir comment arrays est utilisé à partir de la méthode nodelist2json() du lien XML2JSON).

 25
Author: Marcus, 2013-02-22 01:41:05

J'ai téléchargé le projet, vous pouvez ouvrir directement dans eclipse et exécuter c'est tout https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA

Merci

 3
Author: pareshm, 2014-07-10 06:26:28

Je ne sais pas quel est votre problème exact, mais si vous recevez XML et que vous voulez retourner JSon (ou quelque chose), vous pouvez également regarder JAX-B. C'est une norme pour marshalling/unmarshalling Java POJO en XML et/ou Json. Il existe plusieurs bibliothèques qui implémentent JAX-B, par exemple CXF d'Apache.

 2
Author: Martin Sturm, 2014-06-13 16:45:24

J'ai trouvé cela le moyen rapide et facile: Utilisé: org.json.Classe XML de java-json.jar

        if (statusCode == 200 && inputStream != null) {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuilder responseStrBuilder = new StringBuilder();

            String inputStr;
            while ((inputStr = bufferedReader.readLine()) != null) {
                responseStrBuilder.append(inputStr);
            }

            jsonObject = XML.toJSONObject(responseStrBuilder.toString());
        }
 1
Author: horizon7, 2015-04-05 17:42:41