XStream est un projet open source sous la célèbre pensée. Sa fonction principale est de fournir une conversion entre les beans Java et le texte XML. Il fournit également des beans JAVA et . La conversion entre JSON sort du cadre de cette discussion.
XSteam prend également en charge les annotations après JAVA1.5. Pour le moment, il vous suffit d'ajouter quelques annotations au JAVA BEAN. Bien entendu, si le bean JAVA n'est pas autorisé à être modifié, XStream fournit également une méthode d'enregistrement, qui est également très simple. Expliquons en détail à travers plusieurs aspects :
1. Conversion de base
2. Utiliser des alias
Traitement 4. >Type d'attribut ;
5. Les attributs ne participent pas à la conversion Conversion de base
Il s'agit d'un bean JAVA ordinaire :
Le code de conversion est le suivant. suit :
package xstreamTest; public class Person { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
Nous avons obtenu ce résultat :
XStream xstream = new XStream(); Person person = new Person(); person.setName("pli"); person.setAge(18); System.out.println(xstream.toXML(person));
Mais parfois la balise racine ne veut pas utiliser le chemin du package, comment faire, utilisez un alias
<xstreamTest.Person> <name>pli</name> <age>18</age> </xstreamTest.Person>
Jia Ding Nous espérons changer la balise d'élément inexplicable "xstreamTest.Person" en "person".
Le code d'exécution deviendra comme ceci :
package xstreamTest; @XStreamAlias("person") public class Person { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
Donc on obtient ce que l'on veut :
XStream xstream = new XStream(); xstream.autodetectAnnotations(true); Person person = new Person(); person.setName("pli"); person.setAge(18); System.out.println(xstream.toXML(person));
3. Attributs de traitement
Quoi. devriez-vous le faire si vous souhaitez utiliser l'attribut "age" dans le bean JAVA comme attribut de la balise person en XML.<person> <name>pli</name> <age>18</age> </person>
Le résultat est comme ceci :
@XStreamAlias("person") public class Person { private String name; @XStreamAsAttribute private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
Liste de traitement
Quoi. se produit s'il y a une liste dans le bean JAVA.<person age="18"> <name>pli</name> </person>
Conversion directe nous obtiendrons ce résultat :
@XStreamAlias("person") public class Person { private String name; @XStreamAsAttribute private int age; List<String> girlFriends; public List<String> getGirlFriends() { return girlFriends; } public void setGirlFriends(List<String> girlFriends) { this.girlFriends = girlFriends; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
XStream fournit ici une annotation @XStreamImplicit(itemFieldName=***) pour satisfaire l'utilisateur qui souhaite convertir List The besoin de supprimer le nœud racine et de changer le nom de la liste correspond à notre exemple de suppression de la balise
<person age="18"> <name>pli</name> <girlFriends> <string>YuanYuanGao</string> <string>QiShu</string> <string>BoZhiZhang</string> </girlFriends> </person>
Le résultat est comme ceci :
@XStreamAlias("person") public class Person { private String name; @XStreamAsAttribute private int age; @XStreamImplicit(itemFieldName="girl") List<String> girlFriends; public List<String> getGirlFriends() { return girlFriends; } public void setGirlFriends(List<String> girlFriends) { this.girlFriends = girlFriends; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
5. Ignorer les attributs
S'il y a certains attributs dans le bean JAVA que vous ne souhaitez pas sérialiser, XStream fournit une annotation pour résoudre cette exigence : @XStreamOmitField<person age="18"> <name>pli</name> <girl>YuanYuanGao</girl> <girl>QiShu</girl> <girl>BoZhiZhang</girl> </person>
@XStreamAlias("person") public class Person { private String name; @XStreamAsAttribute private int age; @XStreamImplicit(itemFieldName="girl") @XStreamOmitField List<String> girlFriends; public List<String> getGirlFriends() { return girlFriends; } public void setGirlFriends(List<String> girlFriends) { this.girlFriends = girlFriends; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!