将Set [Strings]转换为JSON String scala

时间:2016-09-21 08:31:11

标签: json scala set scala-collections

使用scala编程将Set [Strings]转换为JSON String。 例如:

data = Set(Client_1, Client_2, Client_3)

我正在尝试如下,

   val toString : String = new Gson().toJson(data)

返回一个空。如何使用scala进行转换?

2 个答案:

答案 0 :(得分:2)

Gson是一个Java库,而不是Scala,后来它并不总是正确处理Scala集合。可能确实有意义(正如其他人所建议的那样)使用为Scala制作的JSON框架。

但是你也可以简单地使用Java conversions来获取Java集合并将其传递给你的Gson实例,如下所示:

import collection.JavaConverters.setAsJavaSetConverter

val input: java.util.Set[String] = Set("foo", "bar", "baz").asJava
val json: String = new Gson().toJson(input) // ["foo","bar","baz"]

或者只是首先实例化一个Java集合。

答案 1 :(得分:0)

Gson / Fasterxml无法正确处理scala集合类型,首先转换为java集合。 您可以调用scala.collection.JavaConversions.setAsJavaSet(data)来获取java集合,然后使用gson进行转换