2012-05-15 12 views
5

¿Hay alguna manera sencillaImprimir Jersey JSON en la Unidad de Pruebas

  • imprimir una instancia JAXB anotada
  • en formato JSON (como exactamente Jersey imprimirá en AS)
  • durante la ejecución de las pruebas unitarias
  • sin ningún servidor incorporado lanzado?

Puedo ejecutar y ver en XML con JAXBContext, Marshaller, y más.

¿Hay algún ejemplo para JSON?


Lo encontré. Es similar a JAXB.

Con Jersey API

final JSONJAXBContext context = new JSONJAXBContext(...); 

final JSONMarshaller marshaller = context.createJSONMarshaller(); 
marshaller.marshallToJSON(...); 

final JSONUnmarshaller unmarshaller = context.createJSONUnmarshaller(); 
final T unmarshalled = unmarshaller.unmarshalJAXBElementFromJSON(
     ..., T.class).getValue(); 

para Maven

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <scope>test</scope> 
</dependency> 

Respuesta

2

Es posible:

... 
StringWriter writer = new StringWriter(); 
marshaller.marshallToJSON(objectToMarshall, writer) 
logger.debug(writer.toString()); 
... 

Puede utilizar un StringWriter tomar el String representación de la salida JSON ordenada

Cuestiones relacionadas