您好我是Play的新手,甚至是Scala,我似乎无法将Json正确地发布到服务器上。
我正在尝试实现一个基本的REST API。我有工作,但我似乎无法发布数据,我不知道我哪里出错了
这是我的控制器类
class Items extends Controller {
implicit val itemReads = Json.reads[Item]
implicit val itemWrites = Json.writes[Item]
// GET: /api/items
def index = Action {
println("Items Index")
val items = Json.arr(Item.getItems)
Ok(items)
}
// POST: /api/items
def create = Action(BodyParsers.parse.json) {
request => val item = request.body.validate[Item]
item.fold(errors => {BadRequest(Json.obj("error" -> JsError.toJson(errors)))}, result => {Created})
}
// GET: /api/items/:id
def get(id: Int) = Action {
println("Here is item " + id)
val item = Item.findById(id)
if (item != null) {
Ok(Json.toJson(item))
} else {
NotFound(Json.obj("error" -> 404, "message" -> "Item Not Found"))
}
}
}
这是我发布数据的javascript函数:
function testCreateAnItem() {
$.ajax({
url: "http://localhost:9000/api/items",
type: 'POST',
contentType: "application/json",
data: {id:7, name:"NewGnome"},
success: function(data) {console.log("Success: Created " + data.name)},
error: function() {console.log("Error: Couldn't create new item")}
})
}
我得到的错误是:
对于请求' POST / api / items' [无效的Json:无法识别的令牌' id':期待(' true',' false'或' null') 在[来源:[B @ 4fa5f73d; line:1,column:4]]
我确定我犯了一个愚蠢的错误,但我们将非常感谢任何帮助。
感谢您的时间
更新:
这是我的项目类
case class Item(id: Int, name: String)