Como posso incluir JSON bruto em um objeto usando Jackson?

Estou tentando incluir JSON bruto dentro de um objeto Java quando o objeto é (des) serializado usando Jackson. Para testar essa funcionalidade, escrevi o seguinte teste:

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);
}

O código gera a seguinte linha:

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

O JSON é exatamente como eu quero que as coisas sejam. Infelizmente, o código falha com uma exceção ao tentar ler o JSON novamente no objeto. Aqui está a exceção:

org.codehaus.jackson.map.JsonMappingException: não é possível desserializar a instância de java.lang.String do token START_OBJECT em [Fonte: java.io.StringReader@d70d7a; linha: 1, coluna: 13] (através da cadeia de referência: com.tnal.prism.cobalt.gather.testing.Pojo ["bar"])

Por que Jackson funciona muito bem em uma direção, mas falha ao ir na outra direção? Parece que ele deve ter sua própria saída como entrada novamente. Sei que o que estou tentando fazer não é ortodoxo (o conselho geral é criar um objeto interno parabar que tem uma propriedade chamadaA), mas não quero interagir com este JSON. Meu código está atuando como uma passagem para esse código - quero pegar esse JSON e enviá-lo novamente sem tocar em nada, porque quando o JSON muda, não quero que meu código precise de modificações.

Obrigado pelo conselho.

EDIT: Tornou o Pojo uma classe estática, o que estava causando um erro diferente.

questionAnswers(12)

yourAnswerToTheQuestion