2016-08-26 3 views
0

〜60フィールドのドキュメントを取得してそれを顧客スキーマにマップする必要があります。私はcumstom・シリアライザを始めましたが、本当に、本当にないしたい特定のフィールドのJackson CustomSerializer

"document1": {"type":"Resume", "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"} 
"document2": {"type":"Reference", "url":"https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"} 

:私はそれを変換する必要が

"documents": [{ 
    "type": "Resume", 
    "url": "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt" 
    }, { 
    "type": "Reference", 
    "url": "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt" 
    }] 

:私たちのスキーマは、私はそうのような配列として持っている一つのフィールドを持っています1つの変換だけを行うために、60個のフィールドすべてにカスタムシリアライザを書き込む必要があります。ジャクソンに、他のすべてのフィールドを通常どおりにシリアル化し、この1つのインスタンスに論理を使用するように指示する方法はありますか?

は、私は多くのオプションを試してみましたが、これまで、それほど有用なエラーを取得しておくいる:

com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value 

私もこれが、それは非常に参考になる何を意味するのかを決定することができれば。

ありがとうございます!

答えて

0

可能な解決策は、デフォルトのシリアライザをデフォルトシリアライザを使用して、デフォルトのシリアライザを使用できるすべてのフィールドのデフォルトシリアライザを呼び出すことです。
それをHow to access default jackson serialization in a custom serializer

0

を行う方法のためにあなたは、入力から、値が生のJSONの文字列ですマップを作成した場合、あなたはJackson @JsonRawValue for Map's value

にスティーブクオによって書かれたカスタム・シリアライザを使用することができ、このスレッドを参照してください。
関連する問題