Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo deshabilitar / activar jackson SerializationFeature.WRAP_ROOT_VALUE?

Estoy usando JSONAPI, así que necesito envolver algunas clases, pero no todas las clases, como:

{"users": {"aKey": "aValue"}} // wrapped. {"aKey": "aValue"} // not wrapped. 

Hay una manera de desactivar esta función de forma dinámica o de la propia clase ?,

Yo intento esto:

  • Https://stackoverflow.com/a/27688284/255463 , esta clase nunca se llama.
  • @JsonRootName (value = ""), tampoco funciona.

Para envolver / desempacar Estoy haciendo esto:

 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.enable(SerializationFeature.WRAP_ROOT_VALUE); objectMapper.enable(DeserializationFeature.UNWRAP_ROOT_VALUE); objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); JacksonConverterFactory jacksonConverterFactory = JacksonConverterFactory.create(objectMapper); OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.interceptors().add(new LoggingInterceptor()); Retrofit retrofit = new Retrofit.Builder() .baseUrl(baseUrl) .client(okHttpClient) .addConverterFactory(jacksonConverterFactory) .build(); 

Necesito algunos de los POJOs desactivar esa función, ¿es posible ?.

Gracias.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.