Serialisierung generischen Java-Objekts zu JSON mit Jackson

Als ich versuchte konvertieren Sie die folgende Instanz der Klasse zu JSON (mit Jackson)

public class RPCRespond<Result> {

    private int code;
    private Result result;
    private boolean success;
    private String failureReason;

    public RPCRespond() {
        this.code = 0;
        this.success = true;
        this.result = null;
    }

    public RPCRespond(Result result) {
        this.code = 0;
        this.success = true;
        this.result = result;
    }

    public RPCRespond(int code, String failureReason) {
        this.code = code;
        this.success = false;
        this.failureReason = failureReason;
    }

    public RPCRespond(int code, String failureReason, Object... args) {
        this.code = code;
        this.success = false;
        this.failureReason = String.format(failureReason, args);
    }

    public Result getResult() {
        return result;
    }


    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getFailureReason() {
        return failureReason;
    }

    public void setFailureReason(String failureReason) {
        this.failureReason = failureReason;
    }

    public int getCode() {
        return code;
    }

    public boolean getSuccess() {
        return success;
    }

    @Transient
    public String getAsJSON() {

        String json = "";

        ObjectMapper mapper = new ObjectMapper();
        json = mapper.writeValueAsString(this) ; 

        return json ;
    }

}

es in Endlosschleife:

 an der Sonne.reflektieren.GeneratedMethodAccessor48.invoke(Unknown Source) at 
Sonne.reflektieren.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
bei java.lang.reflektieren.Methode.invoke(Method.java:601) bei 
org.codehaus.jackson.Karte.ser.BeanPropertyWriter.bekommen(BeanPropertyWriter.java:483) 
bei 
org.codehaus.jackson.Karte.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:418) 
bei 
org.codehaus.jackson.Karte.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150) 
bei 
org.codehaus.jackson.Karte.ser.BeanSerializer.serialize(BeanSerializer.java:112) 
bei 
org.codehaus.jackson.Karte.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610) 
bei 
org.codehaus.jackson.Karte.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256) 
bei 
org.codehaus.jackson.Karte.ObjectMapper._configAndWriteValue(ObjectMapper.java:2566) 
bei 
org.codehaus.jackson.Karte.ObjectMapper.writeValueAsString(ObjectMapper.java:2088) 

Die initiation der RPCRespond erfolgt durch

User u = new User() ;
u.setFirstName("aaaa") ;
RPCRespond<User> result = new RPCRespond<User>(u) ;

result.setSuccess(true) ;

return result.getAsJSON() ;

Wie kann ich umwandeln RPCRespond zu JSON?

InformationsquelleAutor der Frage oferbu | 2011-11-07

Schreibe einen Kommentar