SCALA Как разобрать json обратно на контроллер? - PullRequest
0 голосов
/ 17 января 2020

Я новичок в Scala. Я хочу проанализировать JSON данные в scala сохранить в таблице базы данных.

Мой метод GET выглядит следующим образом (Пожалуйста, игнорируйте разрешения):

def Classes = withAuth { username =>
implicit request =>
  User.access(username, User.ReadXData).map { user =>
    implicit val writer = new Writes[Class] {
      def writes(entry: Class): JsValue = Json.obj(
        "id" -> entry.id,
        "name" -> entry.name
      )
    }
    val classes = (Class.allAccessible(user))
    Ok(Json.obj("success" -> true, "classes" -> classes))
  }.getOrElse(Forbidden(Application.apiMessage("Not authorised"))) }

Этот метод GET возвращает json ниже:

"success":true,"schools":[{"id":93,"name":"Happy unniversity",}]}

В настоящее время я рендеринг JSOn в сетке данных js ( редактор ) - с успехом

ОДНАКО, Я не могу разобрать и POST JSON и сохранить его в таблице базы данных (mysql).

Спасибо за ваше руководство!

1 Ответ

2 голосов
/ 17 января 2020

Похоже, вы используете play- json.

Для класса User

import play.api.libs.json.Json

final case class User(id: String, name: String)

object User {
  implicit val userFormat = Json.format[User]
}

object UserJson {

  def main(args: Array[String]): Unit = {
    val user = User("11", "Peter")

    val json = Json.toJson(user).toString()
    println("json ===> " + json)

    val user2 = Json.parse(json).as[User]

    println("name ===> " + user2.name)

  }

}

Я определенно рекомендую эту библиотеку: "de.heikoseeberger" %% "akka-http-jackson "%" 1.27.0 "для akka-http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...