11

在 json4s 示例和文档中,我经常看到成语

compact(render(jval))

pretty(render(jval))

我认为我实际上没有看到一个将紧凑或漂亮直接应用于生成的代码的示例JValue,但我不清楚render这里在做什么。渲染有类型JValue => JValue,我看不出它产生和运行有什么明显的区别

json.take(100000).filter(x => compact(render(x)) != compact(x))

在我的一些数据上返回一个空的空集合。

实际上是做什么的render

4

1 回答 1

10

我猜您正在查看该render方法的具体实现之一,您可以在以下代码中看到该定义JsonMethods trait

def render(value: JValue)(implicit formats: Formats = DefaultFormats): T
def compact(d: T): String
def pretty(d: T): String

该方法render返回一个泛型类型T,它是compactpretty方法的入口类型。

renderjson4s项目中有两种方法的实现,根据本杰克逊风格......我只是从表面上检查了代码,但它们似乎都在根据不同的策略过滤 json 对象的空元素。比方说准备好pretty和/或compact方法启动?

于 2015-01-30T13:31:05.197 回答