2.10のScalaモジュールを使って、ジャクソンのシリアライズ/デシリアライゼーションの簡単な例を教えてもらえますか? Field-by-Fieldアノテーションや割り当てを必要としないリフレクションベースのJSONを探していますが、そうすることができたようですが、ドキュメントには例は含まれていません。Jackson Scalaモジュールの小さな例?
私はケースクラスがある場合:彼らのgithubののreadmeからそう
case class Person(name:String, age:Int)
val person = Person("Fred", 65)
:
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
OK、今何を...? pをJSONに/からJSONに変換する方法は?
val person = Person("fred", 25)
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
val out = new StringWriter
mapper.writeValue(out, person)
val json = out.toString()
println(json)
val person2 = mapper.readValue(json, classOf[Person])
println(person2)
EDIT
ちょうどそれがそうでなければ動作しません、トップレベルとしてPerson
クラスを宣言してください:
私はただ運でこれを試してみました - readValue呼び出しがで失敗します。 com.fasterxml.jackson.databind.JsonMappingExceptionを:として(匿名/ローカルタイプの)クラスcom.example.JacksonTest $人$ 3デシリアライズすることはできません豆。私は何が欠けていますか? PersonはPersonと同じように宣言できますか?case class Person(name:String、age:Int)? – user48956
@cmbaxter、これをスピードアップする方法はありますか、これは推奨方法ですか?つまり、物事をスピードアップするために注釈を付けることができますか? – Blankman
そのマッパーは、アプリケーション全体で使用されるシングルトンですか? – Blankman