0

将 Scala7-M9 和 json4s 3.0.1 与编译器版本 2.10.0 和 2.10.1 一起使用时,我遇到了编译器问题

在编译 JSON 解析代码的简短片段时,我收到以下编译器错误:

[error] JSON.scala:25: erroneous or inaccessible type
[error]                 JArray(children) <- json \ "children"
[error]                                          ^

从此代码:

import scalaz._                                                                 
import Scalaz._                                                                 

import org.json4s._                                                             
import org.json4s.native.JsonMethods._                                          

object JSON {                                                                   

    def main(args: Array[String]) = {                                           
        val json = parse("""                                                    
            {   "name": "joe",                                                  
                "children": [                                                   
                    {                                                           
                        "name": "Mary",                                         
                        "age": 5                                                
                    },                                                          
                    {                                                           
                        "name": "Mazy",                                         
                        "age": 3                                                
                    }]                                                          
            } """)                                                              

        val names = for {                                                       
                JArray(children) <- json \ "children"                           
                JObject(child) <- children                                      
                JField("name", JString(name)) <- child                          
             } yield(name)                                                       

        println("Names: " + names)                                              
     }                                                                           
 }

将导入更改为:

 import scalaz.{Scalaz, \/}                                                                    
 import Scalaz.ToIdOps._

(在我的真实项目中,我只需要 / monad 进行一些验证)解决了这个问题。

只是想知道当我导入整个 scalaz 命名空间时是否有任何来自 Scalaz/编译器世界的人知道是什么导致了编译器错误,以及它是否是我需要归档的 BUG。

谢谢。

4

0 回答 0