2015-10-06 28 views
7

のように、私はJSONAPIを使用していますので、私はいくつかのクラスをラップする必要はなく、すべてのクラス:動的またはクラス自体からTIS機能を無効にする方法はありjackson SerializationFeature.WRAP_ROOT_VALUEを有効/無効にする方法は?

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

私は?

をこれを試してください:

私はこれをやっている/アンラップラップするには:

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

を私が可能ということで、POJOののいくつかは、その機能を無効にする必要があります?。

ありがとうございます。

+0

これを行う方法はありますか? – FlavienBert

+0

@FlavienBert no、:S – nebiros

答えて

1

現在、これは、FasterXML/jackson-databind#1022 で追跡されます。回避策として、ルートが有効なコンバータファクトリと1つではない2つの異なるレトロフィットインスタンスを作成できます。

関連する問題