我尝试使用的第一个SJSON版本(What is a good library for JSON serialization for Scala 2.8.1 for use in Eclipse)存在问题,但是尝试使用新版本的SJSON仍然存在相同的问题,因此我不确定该如何处理。

这是我遇到问题的一个示例,它从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

因此,我应该如何编译这些代码,以便在不检查和修复代码的情况下工作,因为这似乎是错误的方法。

最佳答案

Eclipse一定有问题,因为我刚刚克隆了存储库并使用sbt构建了它。

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

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

如果您不需要从源代码构建,而只是在您自己的项目中使用该库,则该库位于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确实值得一看。祝好运!

07-24 12:57