Jacksonでオブジェクトをシリアル化および逆シリアル化するときにURLエンコード/デコードする簡単な方法があるかどうか疑問に思っています。これは、Riakでインデックスが作成される受信フィールドに不正な文字が含まれていないことを確認するためです。
たとえば、私は次のクラスを持っています(Scalaで):
case class Client(
@(JsonProperty@field)("guid")
@(RiakKey@field)
val guid: String,
@(JsonProperty@field)("name")
@(RiakIndex@field)(name = "name")
val name: String,
@(JsonProperty@field)("address")
val address: String,
@(JsonProperty@field)("contact")
val contact: String,
@(JsonProperty@field)("phone")
@(RiakIndex@field)(name = "phone")
val phone: String,
@(JsonProperty@field)("suspended")
val suspended: Boolean=false,
@(JsonProperty@field)("created")
val created: Date=now,
@(JsonProperty@field)("updated")
val updated: Date=now
)
そのため、name
フィールドでは、RiakIndexの一部である名前の間にスペースがある場合があります。JSONオブジェクトをRiakに保存しようとすると、次のエラーが発生します。
Caused by: java.net.URISyntaxException: Illegal character in path at index 82: http://db2.3tierlogic.com:8098:8098/buckets/accounts-client/index/name_bin/Calgary Flames
at java.net.URI$Parser.fail(URI.java:2810)
at java.net.URI$Parser.checkChars(URI.java:2983)
at java.net.URI$Parser.parseHierarchical(URI.java:3067)
at java.net.URI$Parser.parse(URI.java:3015)
at java.net.URI.<init>(URI.java:577)
at java.net.URI.create(URI.java:839)
... 105 more
そのフィールドをその場でURLエンコードおよびデコードする注釈または非常に簡単な方法はありますか?