ケースクラスは、事実上通常のクラスであるため、「通常の」クラスとしてシリアル化できます。デフォルトですべてのコンストラクター引数にアクセスできるようになるため、通常のクラスよりもシリアル化に適しています。
ケース クラスは、いくつかのメソッドをequalsおよびhashCodeとしてクラスに自動的に追加するようにコンパイラに指示するだけです。同時にapplyメソッドが追加されたコンパニオン オブジェクトがありますが、これは通常のクラスにはまったく影響しません。
したがって、シリアライゼーションで問題が発生した場合、問題の原因が別の場所にある可能性が非常に高くなります。
json4s https://github.com/json4s/json4sを試して、ケース クラスを JSON に変換してから、それを MessagePack 形式に変換できます。
import org.json4s._
import org.json4s.native.Serialization
import org.json4s.native.Serialization.{read, write}
implicit val formats = Serialization.formats(ShortTypeHints(List(classOf[Person])
val jsonString : String = write(Person("Andi", 42))
// convert with MessagePack as you would do with normal JSON