Comment convertir XML en JSON en utilisant uniquement Jackson?
Je reçois une réponse du serveur au format XML. Mais j'ai besoin d'afficher cette au format JSON.
Est-il un moyen de convertir des sans tiers de l'API? J'ai utilisé Jackson, mais pour cela, j'ai besoin de créer des POJO.
La réponse du serveur est comme ceci:
<?xml version='1.0'?>
<errors><error><status>400</status><message>The field 'quantity' is invalid.</message><details><invalid_reason>The quantity specified is greater than the quantity of the product that is available to ship.</invalid_reason><available_quantity>0</available_quantity><order_product_id>12525</order_product_id></details></error></errors>
Est-il possible que le serveur prend également en charge
Jackson est un convertisseur XML ainsi, par la voie
Oui.. Quand je post comme ceci : httpPost.setEntity(nouveau StringEntity(aobj, ContentType.créer("application/json"))); response = httpclient.execute(cible, httpPost); j'obtiens le succès ou l'échec de la réponse au format xml serveur de formulaire.
Mais je ne veux pas créer la classe pojo pour que .. pour le succès qu'elle m'a envoyé message de réussite comme dans l'échec, il m'a envoyé message d'erreur.
Je ne sais pas si cette question est vraiment hors-sujet. L'OP ne nous a pas demandé de recommander ou trouver un livre, un outil, une bibliothèque de logiciels, tutoriel ou d'autres hors-site de ressources. Ils ont demandé si il n'y a aucun moyen de convertir un fichier XML en JSON sans aucun la troisième partie de l'API.
application/json
?Jackson est un convertisseur XML ainsi, par la voie
Oui.. Quand je post comme ceci : httpPost.setEntity(nouveau StringEntity(aobj, ContentType.créer("application/json"))); response = httpclient.execute(cible, httpPost); j'obtiens le succès ou l'échec de la réponse au format xml serveur de formulaire.
Mais je ne veux pas créer la classe pojo pour que .. pour le succès qu'elle m'a envoyé message de réussite comme dans l'échec, il m'a envoyé message d'erreur.
Je ne sais pas si cette question est vraiment hors-sujet. L'OP ne nous a pas demandé de recommander ou trouver un livre, un outil, une bibliothèque de logiciels, tutoriel ou d'autres hors-site de ressources. Ils ont demandé si il n'y a aucun moyen de convertir un fichier XML en JSON sans aucun la troisième partie de l'API.
OriginalL'auteur sudar | 2016-09-14
Vous devez vous connecter pour publier un commentaire.
À L'Aide De Jackson 2.x
Vous pouvez le faire avec Jackson et pas de Pojo sont nécessaires pour que:
Les dépendances suivantes sont nécessaires:
Être conscient de la
XmlMapper
limitations énoncées dans la la documentation:À L'Aide De JSON.org
Vous aussi vous pouvez le faire avec JSON.org:
La dépendance suivant est requis:
Je ne sais pas si vous serez en mesure de le faire avec Jackson 1.x. J'ai mis à jour ma réponse avec une alternative. Il nécessite une dépendance externe.
Laisser vous le savez, la prise en charge de XML pour Jackson 2.x est sorti en tant que séparé de l'artefact. En d'autres termes, même lorsque vous utilisez Jackson 2.x, vous aurez besoin d'inclure la
jackson-dataformat-xml
de dépendance si vous souhaitez utiliser leXmlMapper
.C'est l'un des seuls décemment réponses cohérentes que j'ai jamais vu sur ce site concernant MIME de conversion. Je vous remercie.
GROS AVERTISSEMENT avec les Jackson option est que le XML a souvent des doubles de clés et quand Jackson qui convertit XML avec des doubles de clés en JSON, ils seront écrasés.
OriginalL'auteur cassiomolin
Je sais que je suis trop tard pour une réponse ici. Mais je suis en train d'écrire ceci pour le nouveau gars qui a trébuché sur cette question et de penser à utiliser @Cassio réponse.
Le problème de l'utilisation
XmlMpper
de sérialiser unJsonNode
est que, lorsqu'il y a plusieurs éléments avec le même nom au même niveau, il remplacera la précédente, avec la nouvelle et à la fin jusqu'à la perte de données. Habituellement, nous avons pour l'ajouter à un tableau. Pour s'attaquer à ce problème, nous pouvons remplacer la_handleDuplicateField()
méthode de laJsonNodeDeserializer
classe. Assez parlé. Voyons le codeDepuis que nous avons remplacée par défaut deserializer, nous avons aussi besoin de l'inscrire dans la
XmlMapper
pour le faire fonctionner.OriginalL'auteur Tino M Thomas
Si vous êtes plus d'être pratique, non il n'y en a pas.
L'étape de l'analyse du XML peut être effectuée à l'aide d'Api qui font partie de Java SE. Cependant allant de l'analyse XML (par exemple, un DOM) en JSON nécessite une prise en charge de JSON bibliothèque, et Java SE ne comprend pas.
(En théorie, vous pourrait l'écriture de la bibliothèque vous-même, mais qu'est-ce que le point de le faire?)
@Cassio souligne que Jackson vous permet de faire cette traduction sans avoir à écrire de Pojo. Sinon, regardez les autres (3e partie) JSON Api pour Java; voir http://www.json.org pour une liste de solutions de rechange. Certains des plus simples ne comportent pas de définition de Pojo
OriginalL'auteur Stephen C
OriginalL'auteur Ganesh
À l'aide de jackson
OriginalL'auteur prodigy4440