【问题标题】:Convert Set[Strings] to JSON String scala将 Set[Strings] 转换为 JSON 字符串
【发布时间】:2017-01-29 09:28:04
【问题描述】:

使用 Scala 编程将 Set[Strings] 转换为 JSON 字符串。 例如:

data = Set(Client_1, Client_2, Client_3)

我正在尝试如下,

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

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

【问题讨论】:

  • 谷歌搜索 scala 集合到 json 使用不同的工具,json4s,play framework json parser 和 spray-json 等等,立即产生了几个选项。跨度>
  • 不使用 play、spary 等框架就不能转换吗?

标签: json scala set scala-collections


【解决方案1】:

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 集合。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 2012-10-26
      • 2018-06-08
      相关资源
      最近更新 更多