1

Circe JSON Parser を使用して MongoDB 拡張 JSON を解析しようとしています。以下のケースでは、クラスには long データ型の priorityOrder があります。

case class relinfo(id:String,assetId:String,insureeId:String,queue:String,priorityOrder:Long) extends baseDomain

ただし、MongoDB JSON 形式に変換されると、以下に説明する特別な mongo 形式に変換されます (priorityOrder フィールドを確認してください)。

{
  "_id" : "4abf009d-64b1-496c-b0e8-9061f5e183a0",
  "id" : "4abf009d-64b1-496c-b0e8-9061f5e183a0",
  "assetId" : "e26d5310-ab0c-4672-9971-4babd3420302",
  "insureeId" : "cdee05a1-a09c-4e10-81df-c3f112298cc3",
  "queue" : "Low",
  "priorityOrder" : {
    "$numberLong" : "1930926795621"
  }
}

課題は、逆シリアル化プロセス中です。この JSON を取り、circe パーサーを使用して具体的なオブジェクト型に変換しようとすると、priorityOrder 属性のマッピングに失敗します。長いデータを処理するカスタム エンコーダー/デコーダーを作成する方法はありますか?特別な方法で入力します。カスタム エンコーダー/デコーダーは、"$numberLong" ネストされた型から値を読み取り、その値を Long データ型に変換します。

circeパーサーからこの例外を受け取ります

Left(DecodingFailure(Long, List(El(DownField(priorityOrder),true,false))))
4

1 に答える 1