как использовать поддержку спрея json4s для маршалинга данных json в качестве змеиного случая

Поля класса case в Scala имеют верблюжий вид,

но я хочу создать json со змеиным корпусом.

Есть какой-либо способ сделать это ?

Черта Json4sSupport, похоже, не имеет возможности сделать это.


person jilen    schedule 09.02.2014    source источник


Ответы (1)


JValue имеет snakizeKeys функция.

import org.json4s.jackson.JsonMethods._

val json = """{
             |  "lowerCamelCase": 100,
             |  "UpperCamelCase": 100,
             |  "snake_case": 100,
             |  "dashed-case": 100,
             |  "using spaces": 100
             |}""".stripMargin

val ast = parse(json)

println(pretty(ast.snakizeKeys))

//  {
//    "lower_camel_case" : 100,
//    "upper_camel_case" : 100,
//    "snake_case" : 100,
//    "dashed_case" : 100,
//    "using_spaces" : 100
//  }

Вероятно, вы захотите зацепить конверсию на этапе постобработки ответа и/или предварительной обработки запроса.

person Stefan Ollinger    schedule 09.02.2014
comment
Должен ли я написать маршаллер клиентов? - person jilen; 10.02.2014
comment
Это сработает. Вы можете использовать существующий. - person Stefan Ollinger; 10.02.2014