2012-10-18 23 views
0

我的應用程序允許用戶爲文本等定義幾個模板。例如:其中一個快捷方式可以是hi {{name}}, nice to meet you小鬍子在Java中替換字符串

我有一個複雜的json,它有名字和很多內在的jsons。我正在尋找一種很好的在java中實現的小鬍子,它可以將json的值替換成字符串。目前我正在遍歷每個關鍵字並替換字符串,但我正在尋找更優雅的解決方案,它爲用戶提供了更多的功能,如循環,條件等類似於小鬍子/句柄的模板。

儘管java的鬍子看起來不錯,但我還沒有看到任何可以用JSON替換的實現。所有示例都適用於對象,但不適用於json對象。在我看來,在內部,它使用對象映射器將對象轉換爲對象,並以某種方式應用該對象。

也許我可以將JSON轉換成地圖並提供它。

可能我錯過了一些東西。謝謝。

+0

我認爲你已經看過https://github.com/spullara/mustache.java - Sam Pullara的mustache.js的java實現? –

回答

2

您必須將JSON字符串轉換爲Java對象。您可以使用嵌套的Map,Multimap或創建自己的對象來表示結構。

您可能想要使用JSON序列化程序從JSON字符串創建一個java對象。好的解決方案是Jackson,GsonJson-simple

一旦您擁有了正確的JSON Java表示形式,就可以使用模板引擎進行字符串替換。已知的庫是Freemarker,VelocityStringTemplate

我個人建議傑克遜+ Freemarker,但都是很好的解決方案。

0

Chunk是一個非常適合JSON的模板引擎。循環&條件,標記語法與Mustache類似,並且可以從模板中相當優雅地引用嵌套關聯數據數組。

請參閱this answer的JSON +塊的示例代碼。