5

私はjson4s-jackson(バージョン3.2.11)を使用しています。

注釈を使用してフィールドを無視しようとしています(jackson Javaバージョンなど)。

例は次のとおりです。

case class User(id: Long, name: String, accessToken: String)

次のコードは機能しません。

@JsonIgnoreProperties(Array("accessToken"))
case class User(id: Long, name: String, @JsonProperty("accessToken") accessToken: String)
4

3 に答える 3

9

json4s では、フィールドを無視または名前変更するように構成できるフィールド シリアライザーのインスタンスを提供できます。詳細についてはドキュメントを確認してください。ただし、次のようなものが機能するはずです。

case class User(id: Long, name: String, accessToken: String)

val userSerializer = FieldSerializer[User](
  FieldSerializer.ignore("accessToken")
)

implicit val formats = DefaultFormats + userSerializer
于 2016-03-01T16:13:34.763 に答える
1

次のように Keys to remove をデフォルトのパラメーターとして使用して、ユーティリティメソッドを作成できます。

def removeKeys(entity:AnyRef, keys: List[String]=List("accessToken", "key1", "key2")): String= {
compact(Extraction.decompose(entity).removeField { x => keys.contains(x._1)})
}
于 2015-03-27T08:42:40.830 に答える