¿Cómo puedes escribir JSON sin procesar a través de JsonGenerator de Jackson?

Quiero generar una cadena JSON en la siguiente estructura usando Jackson API (JsonFactory, JsonGenerator). Cómo puedo hacerlo ?

Esperado:

{
    "api": {
        "Salutaion": "Mr",
        "name": "X"
    },
    "additional": {
        "Hello",
        "World"
    }
}

Real:

{
    "api": "{
        \"Salutaion\": \"Mr\",
        \"name\": \"X\"
    }",
    "additional": "{
        \"Hello\",
        \"World\"
    }"
}

Los valores de los atributos api y adicionales estarán disponibles para mí como String. ¿Debo estar usando writeObjectField (como sigue)?

jGenerator.writeObjectField("api", apiString);

Después de construir el objeto jGenerator, ¿cómo obtengo la representación de cadena del objeto JSON construido final?

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
JsonGenerator jGenerator = jfactory.createJsonGenerator(outputStream);
           jGenerator.writeStartObject();

           jGenerator.writeObjectField("api", apiString);
           jGenerator.writeObjectField("additional", additionalString);

           jGenerator.writeEndObject();                    

           jGenerator.close();        
           outputStream.close();
           outputStream.toString()

OutputStream.toString () proporciona una cadena json pero las comillas dobles (") en apiString se prefieren con un carácter de escape \

Es este el camino correcto ?

Respuesta 1

Si tengo una clase que usa un tipo genérico, como la clase pública Record <T> {valor T privado; Registro público (valor T) {this.value = value; }} es bastante sencillo ...

Estoy ejecutando un programa simple de comparación de patrones exactamente como en test_harness Información: java: Se produjeron errores al compilar el módulo 'demo_java8' Información: se utilizó javac 1.8.0_121 para compilar java ...

Por ejemplo, dada una cadena de Battle of the Vowels: Hawaii vs Gronzy cuando especificamos los caracteres que se eliminarán como aeiou, la función debe transformar la cadena a Bttl f th V wls: Hw vs Grzny. Encontró ...

Encontré el problema de tener el mismo .jar (para mi caso, el-api.jar v2.1) dos veces para un proyecto, por lo tanto, la siguiente pila de errores cuando intento ejecutar mi proyecto usando Tomcat 6. ADVERTENCIA: .. .