Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Provider
- @Produces(MediaType.APPLICATION_JSON)
- public class PersonWriter implements MessageBodyWriter<Person> {
- @Override
- public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- /*
- * Devuelve TRUE si la clase es aplicable para convertirlo con este Interprte (Writer)
- */
- return Person.class.isAssignableFrom(type); // por tanto, solo lo evaluamos con la clase
- }
- @Override
- public long getSize(Person t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- //Este metodo es obsoleto para JAX-RS 2.0. Siempre debe devolver -1
- return -1;
- }
- @Override
- public void writeTo(Person t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
- //Aqui ya realizamos la conversion desde el objeto a formato JSON
- JsonGenerator gen = Json.createGenerator(entityStream); // creamos el generador desde el stream
- gen.writeStartObject() //... creamos el objeto
- .write("nombre", t.getName()) //... le colocamos las propiedades
- .write("sexo", t.getGender()) //... no importa el origen...
- .write("id", t.getPersonaId()) //..., con tal que le coloquemos el nombre correecto en el json
- .write("trabajador", t.isWorker());
- gen.writeEnd(); //... y cerramos el objeto
- gen.flush(); //... terminado, cerramos el flujo y esta el json
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement