J'ai une chaîne XML comme indiqué ci-dessous:
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><Response
xmlns="http://tempuri.org/"><UserResult><Users xmlns=""><User>
<Message>Success</Message>
<UserId>213213213</UserId>
<FullName>Abc</FullName>
<Roles>
<Role>
<RoleId>23232333</RoleId>
<RoleName>Salesperson</RoleName>
</Role>
</Roles>
</User>
</Users>
</UserResult></Response>
</s:Body>
</s:Envelope>
Est-il possible de convertir XML en JSON?
Vous pouvez essayer de cette façon aussi. J'ai essayé et testé moi-même.
Étape 1: Téléchargez le fichier Java-json.jar
Étape 2: Ajoutez ceci au dossier /libs
de votre projet puis ajoutez-le au chemin de construction.
Étape 3: Ensuite, utilisez-le comme suit
Importations à rechercher
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
Exemple de chaîne
String sampleXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<mobilegate>"
+"<timestamp>232423423423</timestamp>"
+ "<txn>" + "Transaction" + "</txn>"
+ "<amt>" + 0 + "</amt>"
+ "</mobilegate>";
Json String
JSONObject jsonObj = null;
try {
jsonObj = XML.toJSONObject(sampleXml);
} catch (JSONException e) {
Log.e("JSON exception", e.getMessage());
e.printStackTrace();
}
Log.d("XML", sampleXml);
Log.d("JSON", jsonObj.toString());
Sortie:
XML:
<?xml version="1.0" encoding="utf-8"?><mobilegate><timestamp>232423423423</timestamp><txn>Transaction</txn><amt>0</amt></mobilegate>
JSON:
{"mobilegate":{"timestamp":232423423423,"amt":0,"txn":"Transaction"}}
Je viens de publier une bibliothèque "XML to JSON" pour Android Studio . Elle est facile à intégrer à Gradle, simple à utiliser et configurable.
XmlToJson est disponible sur GitHub:
https://github.com/smart-fun/XmlToJson
prendre plaisir!
Je vous suggérerais d'utiliser json-lib
, une bibliothèque qui ajoute JSON support to any Java program
. json-lib peut prendre XML et le convertir en objet JSON.
Vous pouvez obtenir json-lib ici
Par exemple.
String xml = "your xml string";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read( xml );
Underscore-Java a la méthode statique U.xmlToJson (xml). Je suis le mainteneur du projet. Exemple live
import com.github.underscore.lodash.U;
U.xmlToJson("<a>\n <b></b>\n <b></b>\n</a>");
Vous pouvez convertir xml en objets jackson, puis utiliser jackson json.
J'ai essayé d'ajouter le support XmlPull à jackson xml. Trouvez le projet forké ici:
https://github.com/finvu/jackson-dataformat-xml
Actuellement, uniquement pris en charge pour la version 2.9.6. (clonez la branche jackson-dataformat-xml-2.9.6-XmlPull)
Désolé, je ne suis pas en mesure de fournir une documentation détaillée en raison de contraintes de temps. Si vous avez des connaissances de git et maven pour tirer une branche spécifique et construire le pot, alors cela devrait être relativement facile.
La documentation Jackson xml se trouve sur la page d'accueil de jackson xml git ici:
https://github.com/finvu/jackson-dataformat-xml/tree/jackson-dataformat-xml-2.9.6-XmlPull