2015-10-06 1 views
7

Я использую JSONAPI, так что мне нужно, чтобы обернуть несколько классов, но не все классы, такие как:Как отключить/включить jackson SerializationFeature.WRAP_ROOT_VALUE?

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

Там есть способ отключить тис функцию динамически или из самого класса ?,

I попробуйте следующее:

Завернуть/разворачивать я делаю это:

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

мне нужны некоторые из POJOs отключить эту функцию, является то, что это возможно ?.

спасибо.

+0

Вы нашли способ сделать это? – FlavienBert

+0

@FlavienBert нет,: S – nebiros

ответ

1

В настоящее время нет. Это отслеживается под FasterXML/jackson-databind#1022 В качестве обходного пути вы можете создать два разных экземпляра для переоснащения, один с корневым сервером конвертера и один без него.