鍍金池/ 教程/ Java/ XStream屬性混疊
XStream編寫JSON
XStream屬性混疊
XStream自定義轉(zhuǎn)換器
XStream注解
XStream包混疊
XStream混疊
XStream教程
XStream類混疊
XStream轉(zhuǎn)換器
XStream入門應(yīng)用程序
XStream環(huán)境設(shè)置
XStream字段混疊
XStream隱式集合混疊

XStream屬性混疊

屬性混疊用于創(chuàng)建一個成員變量作為XML屬性序列化。再次修改我們的例子,下面的代碼添加到它。

xstream.useAttributeFor(Student.class, "studentName");
xstream.aliasField("name", Student.class, "studentName");

讓我們使用XStream測試上述對象序列化。

創(chuàng)建一個Java類名為XStreamTester文件在C:\>XStream_WORKSPACE\com\yiibai\xstream.

File: XStreamTester.java

package com.yiibai.xstream;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.stream.StreamResult;

import org.xml.sax.InputSource;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.StaxDriver;

public class XStreamTester {
   public static void main(String args[]){
      XStreamTester tester = new XStreamTester();
      XStream xstream = new XStream(new StaxDriver());
      xstream.alias("student", Student.class);
      xstream.alias("note", Note.class);
      xstream.useAttributeFor(Student.class, "studentName");
      xstream.aliasField("name", Student.class, "studentName");
      xstream.addImplicitCollection(Student.class, "notes");
      Student student = tester.getStudentDetails();
      //Object to XML Conversion
      String xml = xstream.toXML(student);
      System.out.println(formatXml(xml));		
   }	

   private Student getStudentDetails(){
      Student student = new Student("Mahesh");
      student.addNote(new Note("first","My first assignment."));
      student.addNote(new Note("second","My Second assignment."));
      return student;
   }

   public static String formatXml(String xml){
      try{
         Transformer serializer= SAXTransformerFactory.newInstance().newTr