2

我尝试使用的 SJSON 的第一个版本(What is a good library for JSON serialization for Scala 2.8.1 for use in Eclipse)有问题,但是对于新版本,我尝试了同样的问题,所以这是我不确定如何处理的事情。

这是我遇到问题的一个例子,它从https://github.com/ginkel/sjson/blob/master/src/main/scala/sjson/json/Generic.scala的第 50 行开始:

  <#list 2..9 as i> 
  <#assign typeParams><#list 1..i as j>T${j}<#if i !=j>,</#if></#list></#assign>

  def asProduct${i}[S, ${typeParams}](<#list 1..i as j>f${j}: String<#if i != j>,</#if></#list>)(apply : (${typeParams}) => S)(unapply : S => Product${i}[${typeParams}])(implicit <#list 1..i as j>bin${j}: Format[T${j}]<#if i != j>,</#if></#list>) = new Format[S]{

我使用 EGit ( http://www.eclipse.org/egit/ ) 来获取代码,但是当我尝试编译它时,我得到了几个错误,其中两个是:

Description Resource    Path    Location    Type
';' expected but double literal found.  Generic.scala   /sjson/src/main/scala/sjson/json    line 50 Scala Problem
';' expected but '[' found. Generic.scala   /sjson/src/main/scala/sjson/json    line 53 Scala Problem

那么,我应该如何编译这些以便它可以工作,而无需通过和修复代码,因为这似乎是错误的方法。

4

1 回答 1

4

这一定是 Eclipse 的某种问题,因为我刚刚克隆了 repo 并用 sbt 构建它就好了。

如果您想成功构建它,我建议您安装 SBT(如果您还没有安装)。进行 Scala 开发几乎是必需的。与 Netbeans 和 IntelliJ 集成很容易——我不再使用 Eclipse,但我想也可以通过打开 shell 或控制台窗口并在那里运行 SBT 来完成。

一旦您“安装”了 SBT(只是一个 jar 和一个脚本 - http://code.google.com/p/simple-build-tool/),导航到您将 SJSON 克隆到的目录。运行“sbt”。在 sbt 提示符下运行 'update' 以获取依赖项。运行“编译”来构建。你都准备好了。

如果您不需要从源代码构建,而只是在您的项目中使用该库,则它位于 Scala 工具存储库中:http ://scala-tools.org/repo-releases/net/debasishg/sjson_2.8.0/因此,您可以将其作为依赖项添加到 sbt 或 Maven 或 Ivy 中。对于 SBT,这应该有效:

val sjson = "net.debasishg" % "sjson_2.8.0" % "0.8"

我没有亲自使用过这个库。lift-json 对我来说效果很好。但是 sjson 看起来确实值得一看。祝你好运!

于 2011-01-02T18:24:46.747 回答