如何使用json4s将json转换为带有转义字符的字符串

时间:2018-06-21 22:33:39

标签: scala json4s

我正在尝试创建一个将字符串作为值的JSON。其中一个元素将使用String格式的JSON作为值

例如:

input: {"foo":"bar","nestedFoo":[{"foo":"bar"}]}

output: {"foo" : "bar", "nested_foo_as_string":"[{\"foo\":\"bar\"}]"}

我可以使用String replaceAll来用转义的引号替换引号。但是,只是想发布这个问题,以了解是否存在一种简单的方法来使用JSON4s将JSON转换为带有转义字符的字符串。?

我知道有一种方法可以在python中使用json.dumps(json.dumps())来实现,但是找不到使用json4s的更简洁方法。

感谢所有输入。

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以工作...如果您纯粹是在转换json,我认为进出案例类会有些分心:

val input = """{"foo" : "bar", "nestedFoo":[{"foo":"bar"}]}"""
val transformed = parse(input).transformField {
  case ("nestedFoo", x) => ("nested_foo_as_string", JString(compact(render(x))))
}
val output = compact(render(transformed))