Serializar/des-serializar para .CSV ou xml

14 respostas
renato_ramos

Oi!,

tem alguma API que auxilie a serializacao para csv??

mt obrigado =D

14 Respostas

Java_Boy

Antes que eu fale besteira…exemplifica ai =P

renato_ramos

acho que usei a expressao errada… nun é API… acho que biblioteca… a sei la lol
então…
eu preciso serializar meus objetos para algum arquivo para outra aplicação trabalhar come sse arquivo (atualziar, inserir)

pelo que eu estava vendo .csv parace ser o mais facil, mas mesmo assim achei complicado ^^’

mas c vc tiver outra ideia de como eu posso fazer isso…

pode me falar estou aberto a sugestões.

mt obrigado =D

Java_Boy

Bom basicamente é voce pegar os atributos do seu objeto e separar por entre virgulas e vice-versa né. Tem dois caras pra facilitar:

http://supercsv.sourceforge.net/codeExamples_partial_reading_writing.html

http://opencsv.sourceforge.net/ - Reading and Writing

Ai voce pode criar um serviço no seu projeto com o que for melhor pro caso,e deixa esses fws transparentes

renato_ramos

caçando no google

eu achei esse aqui

http://jsefa.sourceforge.net/quick-tutorial.html

to testando… daki a poko eu falo

o segundo link… não tem lugar pra fazer download?

valeu =D

Java_Boy

Nossa esse que voce achou é bem melhor, com annotations fica muito mais fácil.

O do segundo link tem o repositorio

http://oss.sonatype.org/content/groups/sourceforge/net/sf/opencsv/opencsv/2.0.1/

Mas acho que esse ja ficou no chinelo né rsrs

renato_ramos

tipo é uma mão na roda

só que eu não faço a minima ideia de onde ele esta salvando o arquivo.. ou se ele esta salvando '-'

eles não falam isso no tutorial ^^'

aqui esta meu codigo

import org.jsefa.xml.XmlIOFactory;
import org.jsefa.xml.XmlSerializer;
import org.jsefa.xml.namespace.QName;


public class ExportObjectToCSV
{
    public void ExportarObjeto(List<Objeto> list)
    {
        XmlSerializer serializer = XmlIOFactory.createFactory(Objeto.class).createSerializer();
        StringWriter writer = new StringWriter();
        serializer.open(writer);
        serializer.getLowLevelSerializer().writeXmlDeclaration("1.0", "ISO-8859-1");
        serializer.getLowLevelSerializer().writeStartElement(QName.create("Objetos"));
        // call serializer.write for every object to serialize
        for(int i = 0; i< list.size(); i++)
        {
            serializer.write(list.get(i));
        }
        serializer.getLowLevelSerializer().writeEndElement();
        serializer.flush();
        serializer.close(true);
        
    }

}

tentei usar o .flush();

mas nada.. alguma ideia?

renato_ramos

é o problema é maior do que eu esperava… estou usando hibernate tambem…

como sera que eu faço para pegar um valor de objetos relacionados?

aah… ja estou entrando em desespero lol

Java_Boy

Essa XmlSerializer nao tem nenhum metodo pra escrita em arquivo?

Valor de objetos relacionados? Mas nao rola criar um VO pra guardar esse valor, ai vc manda esse VO pro serializar, qq acha? To viajando?rs

renato_ramos

eita… eu boiei mais ainda… não tem não…

só se fizer outra classe que extende dela… e sobrescrever o metodo write… mas não tneho conhecimento pra isso non =/

renato_ramos

achei tambem a possibilidade pra xml

http://xstream.codehaus.org/tutorial.html

tem como criar namespace… igual no jsefa??

valeeu!

Java_Boy

Putz xstream é show, mas ai foge do escopo do .csv.

Mas se puder fazer em .xml xstream tem um esquema similar a namespace sim.

renato_ramos

A.L. valeu

pra mim tanto faz csv ou xml… só quero exportar o objetos…

vc sabe como fazer o esqma do namespace?

e tem como deserializar o namespace em uma lista de objetos??

acho q eu to brizando dmais… to tentando desde das 8h xD

Java_Boy

Putz renato, desculpa a demora cara, conseguiu resolver teu problema?

renato_ramos

ainda não =/

eu consegui serializar para binario, mas ele tambem pega o tipo davariavel… como eu nao vou poder usar o hibernate na outra aplicação que vai usar o arquivo o melhor seria algum arquivo indepente.

to tentando com xml com aquela lib que eu encontrei… mas tá dando uma execao to tentando resolver mas a documetação dos cara é estranho…

ms valeu a atencao!

teh mais!

Criado 13 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 14
Participantes 2