1

我复制了此处找到的 JSON 格式指南的说明:http ://www.scalatra.org/2.2/guides/formats/json.html

下面是 MyScalatraServlet.scala 文件,其中包含我嵌入的所有代码以测试 JSON 格式:

package net.example.testapp

import org.scalatra._
import scalate.ScalateSupport

// JSON-related libraries
import org.json4s.{DefaultFormats, Formats}

// JSON handling support from Scalatra
import org.scalatra.json._

class MyScalatraServlet extends TestAppStack with JacksonJsonSupport {

  get("/") {
    FlowerData.all
  }

}

// Sets up automatic case class to JSON output serialization, required by
// the JValueResult trait.
protected implicit val jsonFormats: Formats = DefaultFormats

case class Flower(slug: String, name: String)

object FlowerData {

  /**
   * Some fake flowers data so we can simulate retrievals.
   */
  var all = List(
      Flower("yellow-tulip", "Yellow Tulip"),
      Flower("red-rose", "Red Rose"),
      Flower("black-rose", "Black Rose"))
}

编译器似乎不喜欢以下行:

protected implicit val jsonFormats: Formats = DefaultFormats

这是错误消息:

[error] /Users/test/test-app/src/main/scala/net/example/testapp/MyScalatraServlet.scala:22: expected start of definition
[error] protected implicit val jsonFormats: Formats = DefaultFormats
[error]                    ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 2 s, completed Jun 17, 2013 4:04:34 PM
> 
4

1 回答 1

2

val jsonFormats只是有点漂浮在那里,不依赖于一个类或任何东西。Aval需要被定义为另一个结构的一部分,如特征、类或对象。尝试将它移到该 servlet 类中,就在调用get("/")

于 2013-06-17T23:06:18.947 回答