我尝试使用的第一个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确实值得一看。祝好运!