2014-10-28 39 views
8

在json4s实例和文档我经常看到成语目的在json4s render`的`

compact(render(jval)) 

pretty(render(jval)) 

我不认为我竟然看到了一个示例紧凑还是蛮应用直接生成代码JValue, 但我不清楚render在这里做什么。 渲染的类型为JValue => JValue,我看不出有什么明显的区别它使 和运行

json.take(100000).filter(x => compact(render(x)) != compact(x)) 
对我的一些数据

返回一个空的空的集合。

render究竟做了什么?

回答

8

我猜你看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方法。

有方法render的两个实现在json4s项目,按照该本地杰克逊味道......我只是肤浅检查的代码,但他们似乎都被过滤空json对象的元素根据不同的策略。让我们假设为pretty和/或compact方法准备好了吗?