0

akka-http は初めてです。私は自分のプロジェクトでこれを使用しています。marshallingとが何であるかを正確に理解することはできませんunmarshalling

誰かがjsonをマーシャリングおよびアンマーシャリングする方法を示す簡単な例で説明できる場合。

4

1 に答える 1

3

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の例では 、アンマーシャリングを成功させるためにスコープに暗黙のフォーマッターが必要であり、ケースクラスのフィールドの数と一致する数が必要です。

于 2015-10-23T09:45:17.257 に答える