我的要求是创建一个类似
的json"filters":{
"key1":"value1",
"key2":"Value2",
"key3":"Value3",
.........
},
这里所有的键和值名称都不同。 iekeys不是固定类型。键和值的数量也可能在不同时间变化。我怎样才能处理这类问题。
我知道在case类中,键是常量,只有值得到改变。我是新来的喷雾剂。如果可能的话,我需要你的所有建议或示例代码。请让我知道我应该如何开始。提前谢谢。
答案 0 :(得分:0)
最简单的解决方案:
import spray.json._
import spray.json.DefaultJsonProtocol._
val map = Map(
"key1" -> "value1",
"key2" -> "Value2",
"key3" -> "Value3"
)
def jsonWithMap(map: Map[String, String]): Map[String, Map[String, String]] =
Map("filters" -> map)
println(s"${jsonWithMap(map).toJson}")
<强>更新强>
根据评论代码应该如下:
import spray.json._
import spray.json.DefaultJsonProtocol._
object MyJsonProtocol extends DefaultJsonProtocol {
implicit val filterFormat = jsonFormat1(FilterComponent.apply)
}
import MyJsonProtocol._
def createfilterJSON(): JsValue = {
val configMap = Map("time_start" -> "request", "time_end" -> "request", "time_type" -> "request")
FilterComponent(configMap).toJson
}
println(s"$createfilterJSON")//just for debug