¿Cómo puedo incluir JSON sin formato en un objeto con Jackson?

Estoy tratando de incluir JSON sin procesar dentro de un objeto Java cuando el objeto se (des) serializa usando Jackson. Para probar esta funcionalidad, escribí la siguiente prueba:

public static class Pojo {
    public String foo;

    @JsonRawValue
    public String bar;
}

@Test
public void test() throws JsonGenerationException, JsonMappingException, IOException {

    String foo = "one";
    String bar = "{\"A\":false}";

    Pojo pojo = new Pojo();
    pojo.foo = foo;
    pojo.bar = bar;

    String json = "{\"foo\":\"" + foo + "\",\"bar\":" + bar + "}";

    ObjectMapper objectMapper = new ObjectMapper();
    String output = objectMapper.writeValueAsString(pojo);
    System.out.println(output);
    assertEquals(json, output);

    Pojo deserialized = objectMapper.readValue(output, Pojo.class);
    assertEquals(foo, deserialized.foo);
    assertEquals(bar, deserialized.bar);
}

El código genera la siguiente línea:

{"foo":"one","bar":{"A":false}}

El JSON es exactamente como quiero que se vean las cosas. Desafortunadamente, el código falla con una excepción al intentar volver a leer el JSON en el objeto. Aquí está la excepción:

org.codehaus.jackson.map.JsonMappingException: no se puede deserializar la instancia de java.lang.String fuera del token START_OBJECT en [Fuente: java.io.StringReader@d70d7a; línea: 1, columna: 13] (a través de la cadena de referencia: com.tnal.prism.cobalt.gather.testing.Pojo ["bar"])

¿Por qué Jackson funciona bien en una dirección pero falla cuando va en la otra dirección? Parece que debería poder tomar su propia salida como entrada nuevamente. Sé que lo que intento hacer es poco ortodoxo (el consejo general es crear un objeto interno parabar que tiene una propiedad llamadaA), pero no quiero interactuar con este JSON en absoluto. Mi código está actuando como un paso para este código: quiero recibir este JSON y enviarlo de nuevo sin tocar nada, porque cuando el JSON cambia no quiero que mi código necesite modificaciones.

Gracias por el consejo.

EDITAR: convirtió a Pojo en una clase estática, lo que estaba causando un error diferente.

Respuestas a la pregunta(12)

Su respuesta a la pregunta