2011-01-04 13 views
-1

デフォルトでは、JacksonのObjectMapperは不明なリストをArrayListとしてデシリアライズしますが、代わりにString []を使用できますか?あなたは、このような機能を見たい場合は、あなたが作成することによって、それを示唆することができますが、現在ないJacksonのObjectMapperでArrayListsの代わりにデフォルトで配列を使用

{"items":[["a", "b"]]} 
+2

デシリアライズ後に 'toArray'を使用しないのはなぜですか? –

+0

@Valentin - 実際の使用ではBeanはより複雑であり、オブジェクトツリー全体をArrayListsを探して歩かなくて済むため、 – OrangeDog

+0

そのdownvoteの理由は何ですか? – OrangeDog

答えて

1

:たとえば

class SomeBean { 
    Object[] items; 
} 

は、アイテムの種類で、このJSONの結果が[0]のArrayListていますジャクソンJIRA(http://jira.codehaus.org/browse/JACKSON)の機能リクエスト。実装はむしろ単純でなければなりません。 'DeserializationConfig.Feature.JSON_ARRAYS_AS_JAVA_ARRAYS'(または何でも)のようなものによって有効になります。

コンテンツがすべて文字列(数字、文字列、ブール値、リスト/マップなどを持つ可能性がある)であるとは限らないため、Object []を表示したいとします。

+0

すべてが文字列の場合は、String []が必要です。 – OrangeDog

+0

これはストリーミング方式では判断できません。呼び出し側が宣言する必要があるか、または後処理で(すべての要素をバッファリングしてその型が何であるかを確認することによって)行う必要があります。しかし、これが行われれば、String []、Number []などを作成するのに使うことができます。 – StaxMan

関連する問題