Jodatime serializa com ilocalmillis

4 respostas
S

ola
tenho alguns atributo do tipo jodatime funciona certinho, na hora de gravar no hibernate, na hora do vraptor identificar os parametros no request.
porem ao gerar json o campo sai assim “dataAdmissao”: {“iLocalMillis”: 1363219200000}

@Column(name="ultimo_acesso")
	@Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")	
	private LocalDateTime dataAdmissao;

4 Respostas

Rafael_Guerreiro

Cria um parser do XStream a anota ele com @Component

O VRaptor já vai usar o seu parser…

S

bom dia
achei essa classe mas ela não tinha resolvido, coloquei uns sysout e tal e vi que tava passando por ela, ai só mudei para DateTime para LocalDate que é o que eu uso funcionou.

package br.com.agile.sistema.vraptor.utils;
import java.util.Collection;

import br.com.caelum.vraptor.interceptor.TypeNameExtractor;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.serialization.xstream.VRaptorClassMapper;

import com.google.common.base.Suppliers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.collections.CollectionConverter;
    
@Component    
public class PersistentBagConverter extends CollectionConverter {    
    
    public PersistentBagConverter(TypeNameExtractor extractor) {      
           super(new VRaptorClassMapper(new XStream().getMapper(), Suppliers.ofInstance(extractor)));    
        }    
    
    @Override    
    @SuppressWarnings("rawtypes")    
    public boolean canConvert(Class type) {    
        return Collection.class.isAssignableFrom(type);    
    }    
        
}
Rafael_Guerreiro

Pode postar como que ficou a sua classe?

S
package br.com.agile.sistema.vraptor.utils;
import org.joda.time.LocalDate;

import br.com.caelum.vraptor.ioc.Component;

import com.thoughtworks.xstream.converters.SingleValueConverter;

@Component      
public class ConvertLocalDataJSON  implements SingleValueConverter  {     
  
    @Override  
    public String toString(Object value) {  
        LocalDate d = new LocalDate(value);  
        String data = d.toString("dd/MM/yyyy");
        return data;  
      
    }    
       
    @SuppressWarnings("rawtypes")  
    public boolean canConvert(Class clazz) {
        return LocalDate.class.isAssignableFrom(clazz);  
    }  
  
    @Override  
    public Object fromString(String arg0) {  
        // TODO Auto-generated method stub  
        return null;  
    }    
    
}
package br.com.agile.sistema.vraptor.utils;
import org.joda.time.LocalDateTime;

import br.com.caelum.vraptor.ioc.Component;

import com.thoughtworks.xstream.converters.SingleValueConverter;
  
@Component      
public class ConvertLocalDataTimeJSON implements SingleValueConverter  {     
  
    @Override  
    public String toString(Object value) {  
        LocalDateTime d = new LocalDateTime(value);  
        String data = d.toString("dd/MM/yyyy hh:mm:ss");
        return data;  
      
    }    
       
    @SuppressWarnings("rawtypes")  
    public boolean canConvert(Class clazz) {
        return LocalDateTime.class.isAssignableFrom(clazz);  
    }  
  
    @Override  
    public Object fromString(String arg0) {  
        // TODO Auto-generated method stub  
        return null;  
    }    
    
}
Criado 15 de março de 2013
Ultima resposta 7 de abr. de 2013
Respostas 4
Participantes 2