将JSONObject.KeySet()添加到scala中的Mutable集

时间:2017-08-02 15:54:39

标签: json scala collections

我是scala的新手。我正在使用一些JSON对象,并希望得到一组JSON对象中可用的所有键。我想做这样的事情:

var set = scala.collection.mutable.Set[String]()
for(condition) {    
  set ++= jsonObject.keySet().asInstanceOf[Set[String]]
}

当我运行代码时,我收到以下错误:

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to scala.collection.mutable.Set

错误不言而喻。 我也尝试将密钥写入文件:

json2.keySet().toArray().foreach { x => keysWriter.write(x) }

IDE发出错误消息:overloaded method value write with alternatives: (x$1: Int)Unit <and> (x$1: String)Unit <and> (x$1: Array[Char])Unit cannot be applied to (Object)

那么,获得一个可访问的密钥列表会有什么更好的方法呢?

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用JavaConverters

import scala.collection.JavaConverters._

val keys = jsonObject.keySet.asScala

keysscala.collection.mutable.Set。要创建不可变的Scala Set,请执行以下操作:

val keys = jsonObject.keySet.asScala.toSet