J'ai essayé de convertir Java Bean et XML avec le formateur XML de Jackson à cette époque

Contexte

~~ Veuillez voir ~~

Préparation

Ajouter ce qui suit à pom


<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.9.8</version>
</dependency>

Utilisation détaillée

http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/

Préparation de cours divers

supposition

-J'ai utilisé @Builder de Lombok lors de la création de données bean (non mentionné dans cet article)   https://projectlombok.org/

Bean

TestBean.java


@Data
@Builder
@JacksonXmlRootElement(localName = "top_element")
public class TestBean implements Serializable {

    // isAttribute =Si vrai est donné, il devient un attribut
    @JacksonXmlProperty(localName = "id", isAttribute = true)
    private String topElement;

    @JacksonXmlProperty(localName = "test_field")
    private String testField;
    
    //Vous pouvez également écrire des beans imbriqués
    @JacksonXmlProperty(localName = "test_inner_bean")
    private TestInnerBean testInnerBean;

    //Vous pouvez avoir une liste de haricots sur le terrain
    @JacksonXmlElementWrapper(localName = "dtls")
    @JacksonXmlProperty(localName = "dtl")
    private List<DtlsInnerDto> dtlsInnerDto;

Haricots à nidifier

TestInnerBean.java


@SuppressWarnings("serial")
@Data
@Builder
public class TestInnerBean implements Serializable {

    @JacksonXmlProperty(localName = "inner_field_one")
    private String innerFieldOne;

    @JacksonXmlProperty(localName = "inner_field_two")
    private String innerFieldTwo;
}

Liste des beans imbriqués

DtlsInnerDto.java


@SuppressWarnings("serial")
@Data
@Builder
public class DtlsInnerDto implements Serializeble {
    @JacksonXmlProperty(localName = "dtl_item")
    private String dtlItem;
}

Bean → code de traitement de conversion XML

import com.fasterxml.jackson.dataformat.xml.XmlMapper;

String xml = new XmlMapper().writeValueAsString(Processus d'assemblage des haricots());

Résultat de la conversion

<top_element id="xxx">
  <test_field>xxx</test_field>
  <test_inner_bean>
     <inner_field_one>xxx</inner_field_one>
     <inner_field_two>xxx</inner_field_two>
  </test_inner_bean>
 <dtls>
    <dtl>xxx</dtl>
    <dtl>yyy</dtl>
    <dtl>zzz</dtl>
  </dtls>
</top_element>

XML → Code de traitement de conversion Bean

import com.fasterxml.jackson.dataformat.xml.XmlMapper;

Haricot de classe Bean= new XmlMapper().readValue(chaîne xml,Classe de haricots.class)

Note

--Lorsque vous souhaitez exprimer une liste http://labs.opentone.co.jp/?p=6634

Recommended Posts

J'ai essayé de convertir Java Bean et XML avec le formateur XML de Jackson à cette époque
J'ai essayé de lire et de sortir CSV avec Outsystems
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé d'interagir avec Java
J'ai essayé de démarrer avec Web Assembly
J'ai essayé le nouveau yuan à Java
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
Conversion de JSON en TSV et TSV en JSON avec Ruby
J'ai essayé de générer automatiquement une classe à convertir d'une classe de données en un bundle avec APT
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
J'ai essayé de gérer les informations de connexion avec JMX
J'ai essayé d'organiser la session en Rails
J'ai essayé de lier grafana et postgres [docker-compose]
J'ai aussi essayé Web Assembly avec Nim et C
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de lier JavaFX et Spring Framework.
J'ai essayé de développer une application en 2 langues
J'ai essayé de casser le bloc avec java (1)
J'ai essayé d'exprimer le numéro de téléphone (téléphone fixe / téléphone portable) avec une expression régulière dans Rails et d'écrire la validation et le test
J'ai essayé de créer une fonction / écran d'administrateur de site commercial avec Java et Spring
J'ai essayé ce que je voulais essayer avec Stream doucement.
Convertir JSON et YAML en Java (en utilisant Jackson et SnakeYAML)
Essayé l'API Toot et Streaming de Mastodon en Java
Convertir l'énumération Java et JSON vers et depuis Jackson
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
J'ai essayé d'implémenter la notification push Firebase en Java
[Java 11] J'ai essayé d'exécuter Java sans compiler avec javac
# 2 [Note] J'ai essayé de calculer quatre-vingt-dix-neuf avec Java.
J'ai essayé d'intégrer le bouton AWS I oT et Slack
J'ai essayé de démarrer avec Spring Data JPA
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé de résumer divers link_to utilisés cette fois
J'ai essayé d'implémenter Sterling Sort avec Java Collector
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
~ J'ai essayé d'apprendre la programmation fonctionnelle avec Java maintenant ~
J'ai essayé de mâcher C # (lire et écrire des fichiers)
J'ai essayé de découvrir ce qui avait changé dans Java 9
Facile à créer LINE BOT avec Java Servlet Partie 2: J'ai essayé des messages image et des modèles
J'ai essayé de faire une demande en 3 mois d'inexpérimenté
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
J'ai essayé d'augmenter la vitesse de traitement avec l'ingénierie spirituelle
J'ai essayé de collecter et de résoudre les problèmes liés à la «classe» de Ruby.
J'ai essayé de résumer les bases de kotlin et java
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
[jackson] Je souhaite recevoir les valeurs JSON "0" et "1" sous forme de booléen
J'ai essayé de faire coexister Java Optional et la clause de garde