Serializar objeto em XML

1 resposta
J

Pessoal, boa tarde.

Estou com o seguinte problema, tenho uma classe "X" com dois atributos, um String e Hashtable, cada elemento da hash será outro objeto. Bem preciso serializar isto em XML, ele está serializando o atributo String mas a Hashtable não. O código de exemplo está aí...

import java.util.*;
import java.io.*;
import app.com.diversos.*;
import java.beans.*;

public class Enquete implements Serializable
{
  // membros da classe
  private String versao;
  private Hashtable alResposta = new Hashtable();
  
  class Resposta implements Serializable
  {
  	String resposta;
  	float votos;
  	float percentual;
  	
  	public Resposta(String resposta)
  	{
  		setResposta(resposta);
  		resetVoto();
  	}
  	
  	public String getResposta()
  	{
  		return resposta;
  	}
  	
  	public void setResposta(String resposta)
  	{
  		this.resposta = resposta;
  	}
  	
  	public void setPercentual(float percentual)
  	{
  		this.percentual = percentual;
  	}
  	
  	public float getPercentual()
  	{
  		return percentual;
  	}
  	
  	public void setVotos(float votos)
  	{
  		this.votos = votos;
  	}
  	
	    public float getVotos()
	    {
	      return votos;
	    }
  	
  }

  public Enquete() throws Exception
  {
    setVersao("");
    setArquivo("");
    setNome("");
    setArquivoResultado("");
    setHpDefault("");
    setPergunta("");
  }

  public Enquete(String arquivo) throws Exception
  {
    this();
    setArquivo(arquivo);
    carregar(arquivo);
  }
  
  public String getVersao()
  {
    return versao;
  }

  public void setVersao(String versao)
  {
    this.versao = versao;
  }

  public void addResposta(String cResposta)
{
	alResposta.put(cResposta, new Resposta(cResposta));
}

 	public void gravarVotacao() throws Exception 
 	{
		XMLEncoder e = new XMLEncoder(new BufferedOutputStream( new FileOutputStream("c:/teste.xml")));
		e.writeObject(this);
		e.close();
 	}
 	
  
}

Coloquei apenas parte do trecho de codigo pois é bem extenso...

Grato por qq ajuda!

Abraços javaneses.

Júlio.

1 Resposta

V

Cara, usa XStream. :wink:

Criado 21 de julho de 2004
Ultima resposta 22 de jul. de 2004
Respostas 1
Participantes 2