Контроллер Java JSON для Scala?

#java #json #scala #playframework-2.0

#java #json #скала #playframework-2.0

Вопрос:

Мне труднее, чем хотелось бы признать, разобраться в документации JSON.

Я хотел бы преобразовать этот результат JSON в Scala, но я совсем запутался. Я много чего перепробовал, но я все еще изучаю Scala, так что ничего из этого на самом деле не стоит публиковать, поскольку я даже не уверен, имеет ли это смысл.

Я использую Anorm ORM в Scala. Идентификатор — это Pk[Long]

 public static Result checkName(String clubname){
      ObjectNode jresult = Json.newObject();

     if (Club.clubExists(clubname)) {
         jresult.put("error", "Club Name Exists");
         return status(409, jresult); // 409 - Conflict
     } else {
         jresult.put("status", "OK");
         return ok(jresult);
     }
 }
 

Клуб существует в модели:

 public static boolean clubExists(String name) {
    Club club = find.where().eq("club_name", name).findUnique();
    return (club != null);
}
 

Остальная часть модели довольно проста:

 @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "club_seq")
public Long clubId;

@Column(unique=true, length = 50)
public String clubName;

public Long creator;
public DateTime created;

public Club(String clubName, Long creator) {
    this.clubName = clubName;
    this.creator = creator;
    this.created = new DateTime();
}

public static Finder<Long, Club> find = new Finder<Long, Club>(Long.class, Club.class);

public static Club create(String name, Long creator) {
    Club club = new Club(name, creator);
    club.save();
    return club;
}
 

Ответ №1:

 public static Result checkName(String clubname){
     ObjectNode jresult = Json.newObject();

     if (Club.clubExists(clubname)) {
         jresult.put("error", "Club Name Exists");
         return status(409, jresult); // 409 - Conflict
     } else {
         jresult.put("status", "OK");
         return ok(jresult);
     }
}
 

в Scala есть (добавление as JSON для изменения типа MIME):

 def checkName(clubName:String) = Action {
  val jresult = Json.obj()
  if (Club.exists(clubName)) {
    Conflict(jresult) as JSON
  } else {
    Ok(jresult) as JSON
  } 
}