Hallo Ich habe Probleme mit einem JSON Body Parser. Mein Problem ist folgendes Ich habe eine Fallklasse mit einigen optionalen Parametern (Option [T]) und einen Parameter mit einem Standardwert, der nicht als Option [T] eingegeben werden soll.Spielen Scala JSON Body Parser Standardwert Feld
jedoch, wenn ein JSON Körper Parsen das Feld mit dem Standardwert mit weggelassen ich einen Fehler ist
play.api.libs.JsError
/count error path missing
Hier mein Controller-Code:
object MyController extends Controller{
implicit val itemWrites = Json.writes[Item]
implicit val itemReads = Json.reads[Item]
implicit val itemFormats = Json.format[Item]
def add = DBAction(parse.json){ implicit rs =>
val item = rs.request.body.validate[Item]
}
Hier meinem Fall-Klasse ist:
case class Item(id:Option[Int], name:String, description:Option[String], count:Int=0)
Gibt es eine Chance, das gleiche Verhalten wie Option [T] mit dem Standardwert Feld zu erreichen?
Dank
Ich verwende:
- Scala 2.10
- Play-Framework-2.2.1
- Wiedergabe-Slick Plugin 0.5.0.8
Hallo, danke, ich hätte lieber keine Option. Wie für den Link, den Sie angegeben haben. Der Benutzer gibt an, dass seine derzeitige Lösung einige Nachteile hat, und ich muss sagen, dass ich dem zustimme. Wenn jedoch keine bessere Lösung vorgeschlagen wird, werde ich seinen Ansatz verwenden, da ich keinen Weg sehe. – ufasoli
Die beste Lösung würde beinhalten, ein Makro zu schreiben, um automatisch den withDefault zu erstellen, dies ist jedoch ziemlich das Unterfangen :( – Jean
Ja das ist ziemlich viel Mühe ... – ufasoli