2016-03-29 18 views
0

Мое требование создает как JSONСоздание JSON, имеющих различные ключи и значения с распылителем

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

Здесь все ключи и значения имени различны. i.e.keys не являются фиксированным типом. Также количество ключей и значений может меняться в разное время. Как я могу работать над такой проблемой.

Я знаю, что в случае класса ключи постоянны, только значение получило изменение. Я новичок в спрее. Мне нужны все ваши предложения, если возможно, примеры или примеры кода. Пожалуйста, дайте мне знать, как мне начать. Заранее спасибо.

ответ

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}") 

Update

Согласно комментировать код должен выглядеть следующим образом:

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 
+0

Спасибо Анджей за ваш ответ. – user1548787

+0

случая класса FilterComponent (фильтр: Карта [String, String]) Объект MyJsonProtocol расширяет DefaultJsonProtocol { неявное вал filterFormat = jsonFormat1 (FilterComponent.apply)} Защита createfilterJSON (SC: SparkContext, queryParameter: QueryParameter): JsValue = { вал ConfigMap = Карта ( "TIME_START" -> "запрос", "time_end" -> "запрос", "time_type" -> "запрос" ) вал filterjson = FilterComponent (ConfigMap) .toJson возвращение kpijson; } ошибка не может найти неявное значение для параметра доказательства типа – user1548787

+0

Hi Andrzej Пожалуйста, проверьте вышеприведенное или нет. Я получил 2 ошибки 1. не смог найти неявное значение для параметра доказательства типа 2. Недостаточно аргументов для метода jsonFormat. Мне нужно ваше предложение, пожалуйста, проверьте его. – user1548787