播放框架 Json 输出问题
Play framework Json output issue
我有一个简单的动作输出一个 json 对象字符串,像这样:
Ok(toJson(Map(
"results" -> result_lists
)))
这一切正常。但如果我这样做:
Ok(toJson(Map(
"action" -> action_string, // a Scala String
"results" -> result_lists // a Scala List
)))
我得到了
No Json serializer found for type scala.collection.immutable.Map[String,java.io.Serializable]
编译错误...有什么问题?
正如其他人之前在评论中发表的那样,Map 的类型不是框架可以反序列化为 Json 的东西,但您可以轻松摆脱 Map:
scala> val s = "hello"
s: String = hello
scala> val list = List(1,2,3)
list: List[Int] = List(1, 2, 3)
scala> Json.obj("somestring" -> s, "somemap" -> list)
res0: play.api.libs.json.JsObject = {"somestring":"hello","somemap":[1,2,3]}
然后可以根据需要通过操作返回生成的对象。
我有一个简单的动作输出一个 json 对象字符串,像这样:
Ok(toJson(Map(
"results" -> result_lists
)))
这一切正常。但如果我这样做:
Ok(toJson(Map(
"action" -> action_string, // a Scala String
"results" -> result_lists // a Scala List
)))
我得到了
No Json serializer found for type scala.collection.immutable.Map[String,java.io.Serializable]
编译错误...有什么问题?
正如其他人之前在评论中发表的那样,Map 的类型不是框架可以反序列化为 Json 的东西,但您可以轻松摆脱 Map:
scala> val s = "hello"
s: String = hello
scala> val list = List(1,2,3)
list: List[Int] = List(1, 2, 3)
scala> Json.obj("somestring" -> s, "somemap" -> list)
res0: play.api.libs.json.JsObject = {"somestring":"hello","somemap":[1,2,3]}
然后可以根据需要通过操作返回生成的对象。