2014-10-28 21 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方法準備好了嗎?