使用spray

时间:2016-03-29 06:04:07

标签: scala spray spray-json

我的要求是创建一个类似

的json
"filters":{  
        "key1":"value1",
        "key2":"Value2",
        "key3":"Value3",
    .........
     },

这里所有的键和值名称都不同。 iekeys不是固定类型。键和值的数量也可能在不同时间变化。我怎样才能处理这类问题。

我知道在case类中,键是常量,只有值得到改变。我是新来的喷雾剂。如果可能的话,我需要你的所有建议或示例代码。请让我知道我应该如何开始。提前谢谢。

1 个答案:

答案 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