私は以下のユースケースがあります:私はserde使用JSON4Sフィールド、ID
という名前を持っているんだJSON4Sデシリアライゼーション
各クラスを。このID
は任意のタイプT <: Stringifiable
になります。Stringifiable
はIDタイプを文字列にハッシュする必要があります。 Stringifiablesには、文字列から再構築するコンストラクタもあります。
のように、ComplexIdentifier
のように、ID: stringified_identifier
のJSONにserdeしたいと思います。シリアライゼーションはうまく機能しますが、残念なことにデシリアライズ時にJSON4Sはコンストラクタが1つしかないデフォルトのコンストラクタを使用しません。コンストラクタを検索しますが、識別子の署名がcase class ComplexIdentifier(whatever: String)
の場合はwhatever
の名前をJString(stringified_identifier)
から抽出しようとします。それは失敗し、MappingException
が内部的にスローされます。
このような値を抽出せずにデフォルトのコンストラクタを使用するようにJSON4Sを教える方法はありますか? JString
の値を使用して、それを使用してStringifiable
を構成することは、とても明らかです。
ありがとうございます!