私はスケーラに新しく、オブジェクトに私のjsonをマッピングしようとしています。私はjackson-scala-moduleを見つけましたが、使用方法を理解することはできませんでした。小さな例が助けになるかもしれません。私が使用していますScala JacksonをJSON逆シリアル化に使用しますか?
import com.fasterxml.jackson.databind.ObjectMapper
Val mapper = = new ObjectMapper();
val data = mapper.readValue(json, classOf[Person])
依存関係:
val json = { "_id" : "jzcyluvhqilqrocq" , "DP-Name" : "Sumit Agarwal" , "DP-Age" : "15" , "DP-height" : "115" , "DP-weight" : "68"}
は、私は今、私はこれを使用してしようとしているティルPerson(name: String, age: Int, height: Int, weight: Int)
にこれをマッピングする
"com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.8.4"
私は行方不明です何か?
EDIT:
[error] (run-main-4) com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of models.Person: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
代わりにhttps://circe.github.io/circe/をお勧めします。反射を使用しません。 – Reactormonk
エラーメッセージには、デフォルトのコンストラクタ(空)がないことが示唆されています。 Jacksonは最初に空のオブジェクトを作成してから、jsonのストラクチャ内のすべての属性を調べ、それらを反復して結果オブジェクトに設定します。欠点は、オブジェクトのプロパティごとにセッターを用意する必要があることです。しかし、Reactormockが示唆しているように、私はcirceの使用をお勧めします。これは、デシリアライズ(少なくともスカラー化)の慣用的なアプローチを提供するからです。 – irundaia
scala jackson自身の解決策/提案/回避策? –