3

私はスカラを学んでいます。JSON 文字列を Scala ケース クラス インスタンスに変換する簡単な方法を見つけようとしています。Java には Google Gson というすばらしいライブラリがあります。特別なコーディングなしで、Java Bean を json に変換したり、元に戻すことができます。基本的には、1 行のコードで実行できます。

public class Example{
  private String firstField
  private Integer secondIntField

  //constructor

  //getters/setters here
}
//Bean instance to Json string
String exampleAsJson = new Gson().toJson(new Example("hehe", 42))

//String to Bean instance
Example exampleFromJson = new Gson().fromJson(exampleAsJson, Example.class)

私はhttps://www.playframework.com/documentation/2.5.x/ScalaJsonについて読んでいますが、アイデアを得ることができません:なぜそれがとても複雑なのですか? 単純な単純なケース クラスのインスタンスをシリアル化/逆シリアル化するためにリーダー/ライターを作成する必要があるのはなぜですか? ケースクラスインスタンス -> json -> play json api を使用してケースクラスインスタンスを変換する簡単な方法はありますか?

4

2 に答える 2

3

あなたが持っているとしましょう

case class Foo(a: String, b: String)

このためのフォーマッタを Play で簡単に書くことができます。

implicit val fooFormat = Json.format[Foo]

これにより、JSON へのシリアル化と逆シリアル化の両方が可能になります。

val foo = Foo("1","2")
val js = Json.toJson(foo)(fooFormat)  // Only include the specific format if it's not in scope.
val fooBack = js.as[Foo]              // Now you have foo back!
于 2016-04-25T12:14:06.703 に答える