No hay JSONObject
en Jackson api. En lugar de devolver JSONObject
, puede devolver un Mapa o un Java Bean con la propiedad de mensaje que tiene getters y setters para él.
public class MyMessage {
private String message;
public void setMessage(final String message) {
this.message = message;
}
public String getMessage() {
return this.message;
}
}
lo tanto, su método se reducirá a:
private MyMessage(String message) {
MyMessage myMessage = new MyMessage();
myMessage.setMessage(message);
return myMessage;
}
Otro aspecto de este cambio sería cambiar el código de serialización, para convertir de nuevo a MiMensaje cadena JSON. Jackson hace Java Beans, mapas por defecto, no es necesario crear un ejemplo JSONObject
,
private String serializeMessage(MyMessage message){
//Note: you probably want to put it in a global converter and share the object mapper
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(message);
}
El anterior devolverá {message: "some message"}
He omitido las excepciones por razones de brevedad.
¿Así 'jacksonObj' sería mi objeto de devolución? – kasavbere
Con todas las exageraciones sobre jackson, esperaba que org.codehaus.jackson fuera más simple que org.json. Vota por tu ayuda. – kasavbere
@kasavbere: He editado mi respuesta para reflejar mejor su pregunta original. En cuanto a la simplicidad, no es tan simple, pero depende de lo que quieras hacer con ella. Para serializaciones más simples, es más simple usar 'org.json'.Sin embargo, si está haciendo serializaciones de objetos grandes y tiene algunas necesidades personalizadas (por ejemplo, serializar un campo 'Fecha' como un valor' Cadena'), Jackson es, de lejos, la mejor opción, imho. –