akka-http は初めてです。私は自分のプロジェクトでこれを使用しています。marshalling
とが何であるかを正確に理解することはできませんunmarshalling
。
誰かがjsonをマーシャリングおよびアンマーシャリングする方法を示す簡単な例で説明できる場合。
akka-http は初めてです。私は自分のプロジェクトでこれを使用しています。marshalling
とが何であるかを正確に理解することはできませんunmarshalling
。
誰かがjsonをマーシャリングおよびアンマーシャリングする方法を示す簡単な例で説明できる場合。
http で要求を受信すると、ワイヤ形式、つまりバイト文字列になります。アンマーシャリングはこのバイト文字列を高レベル形式に変換し、逆にマーシャリングは低レベル形式に変換します。
string(str)
jsonを caseに変換する akka-http の例class(person)
:
case class Person(name: String, age: Int)
val str = """{"name": "some", "aga": 10}"""
impicit val jsonF = jsonFormat2(Person)
val person = JsonParser(str).convertTo[Person]
しかし、より良いアプローチは、akka-http のエンティティ ディレクティブを使用することです。
val route = post {
entity(as[Person]) { person =>
complete(s"Person: ${person.name} - favorite number: ${person.favoriteNumber}")
}
}
ドキュメントhereの例では 、アンマーシャリングを成功させるためにスコープに暗黙のフォーマッターが必要であり、ケースクラスのフィールドの数と一致する数が必要です。