如何在PlayFramework中将Scala Map序列化为Json?

nis*_*002 8 json scala playframework-2.2

看起来Play Json Library无法序列化Scala集合.有没有其他选择.我只需要从地图转储数据.

import scala.concurrent._
import play.api.libs.ws._
import scala.concurrent.ExecutionContext.Implicits.global
import play.libs.Json

object temp {

        // Correct Serialization
        val javaMap = new java.util.HashMap[String, String]()

        javaMap.put("Abc", "Def")

        // Outputs: res1: String = {"Abc":"Def"}
        Json.stringify(Json.toJson(javaMap))


        // Incorrect Serialization
        val scalaMap = Map("Abc" -> "Def")           //> scalaMap  : scala.collection.immutable.Map[String,String] = Map(Abc -> Def)

        // Output: res2: String = {"empty":false,"traversableAgain":true}
        Json.stringify(Json.toJson(scalaMap))       //> res2: String = {"empty":false,"traversableAgain":true}

    }
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 12

您正在导入错误的JSON库.

import play.api.libs.json._

  • 很好,谢谢。使用哪个有点混乱。 (2认同)