Soumettre le formulaire au format JSON avec Play Framework

J’essaie de soumettre un formulaire en tant qu’object JSON car je souhaite créer une API REST avec play.

Le problème que j’ai est que Play me dit que ce n’est pas un JSON valide.

Mon code de formulaire:

@(form : Form[Product]) @main("Create Form"){ @helper.form(routes.Products.createProduct, 'enctype -> "application/json"){ @helper.inputText(form("name"))  } } 

Code du contrôleur:

 // Read JSON an tell if it has a name Path @BodyParser.Of(BodyParser.TolerantJson.class) public static Result createProduct() { JsonNode json = request().body().asJson(); Ssortingng name = json.findPath("name").textValue(); if (name == null) { return badRequest("Not JSON"); } else { return ok(name); } } 

Quelle est la meilleure façon de faire cela? lire sur la soumission avec Ajax, mais comme je suis novice en matière de jeu, je ne vois pas comment y parvenir avec la syntaxe de formulaire de Play.

Vous pouvez le faire facilement avec jQuery (assurez-vous donc que jQuery est inclus dans votre tête) et la fonction formAsJson() basée sur la fonction serializeObject .

 @helper.form(routes.Products.createProduct(), 'id -> "myform") { @helper.inputText(jsonForm("name"))  }  

et votre action createProduct() pourrait ressembler à createProduct() :

 public static Result createProduct() { JsonNode json = request().body().asJson(); Ssortingng name = json.findPath("name").textValue(); if (json==null || name==null || ("").equals(name.sortingm())){ return badRequest(); } return ok(); }