在json4s示例和文档中我经常看到这些习语
compact(render(jval))
和
pretty(render(jval))
我认为我实际上没有见过将紧凑或漂亮直接应用于生成的代码JValue
的示例,
但我不清楚 render 在这里做什么。
渲染的类型为 JValue => JValue
并且我没有看到它有任何明显的区别
并运行
json.take(100000).filter(x => compact(render(x)) != compact(x))
我的一些数据返回一个空的空集合。
渲染
实际上做了什么?
最佳答案
我猜您正在查看 render
方法的具体实现之一,您可以在 JsonMethods trait
中看到该定义。 :
def render(value: JValue)(implicit formats: Formats = DefaultFormats): T
def compact(d: T): String
def pretty(d: T): String
方法render
返回一个泛型类型T
,它是compact
和pretty
的入口类型方法。
在 json4s 项目中,有两种方法 render
的实现,分别是 native 和 jackson flavor ...我只从表面上检查了代码,但它们似乎都根据不同的策略过滤 json 对象的空元素。假设要为 pretty
和/或 compact
方法启动做好准备?
关于json - json4s中 `render`的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599987/