将Scala类对象(具有集合)转换为Json String

时间:2018-04-24 11:31:05

标签: json scala gson

我正在使用Gson来序列化scala对象,但这种方法仅适用于标准数据类型,例如 Int,String 但是我没有得到集合<的预期结果/ strong>如下例:

import com.google.gson.Gson

object Hello extends App {

  case class FilterJson(version: Int,
                        maps: Map[String, String],
                        gameModes: Map[String, String])

  def anyRefToJsonString(scalaValue: AnyRef): String = {
    import com.google.gson.Gson

    val gson = new Gson
    val jsonString = gson.toJson(scalaValue)
    jsonString
  } //End of function

  val finalJson = anyRefToJsonString(
    FilterJson(
      version = 6,
      maps = Map(
        "MP_ArcticFjord" -> "on"
      ),
      gameModes = Map(
        "Conquest" -> "on"
      )
    ))

  println(finalJson)
}

上面是Scala中的示例代码,但我得到的是 finalString 如下:

{"version":6,"maps":{},"gameModes":{}}

但应该得到这个

{\"version\":6,\"maps\":{\"MP_ArcticFjord\":\"on\"},\"gameModes\":{\"Conquest\":\"on\"}}

请帮我解决这个问题,即如何将集合的对象转换为Json String

0 个答案:

没有答案