2

我的应用程序允许用户为文本等定义一些模板。例如:快捷方式之一可能是hi {{name}}, nice to meet you.

我有一个复杂的 json,它有名字和很多内部 json。我在java中寻找一种很好的胡子类型的实现,它可以将json的值替换为字符串。目前我正在遍历每个键并替换字符串,但我正在寻找更优雅的解决方案,它为用户提供更多的模板,如循环、条件等,类似于胡须/车把。

虽然用于 java 的 mustache 看起来不错,但我还没有看到任何可以用 JSON 替换的实现。所有示例都适用于对象,但不适用于 json 对象。在我看来,在内部,它使用对象映射器将对象转换为对象,并以某种方式应用它。

也许我可以将 JSON 转换为地图并提供它。

可能我错过了一些东西。谢谢。

4

3 回答 3

2

您必须将 JSON 字符串转换为 Java 对象。您可以使用嵌套的 Map、Multimap 或创建自己的对象来表示结构。

您可能想使用 JSON 序列化器从 JSON 字符串创建 java 对象。好的解决方案是JacksonGsonJson-simple

一旦您有了正确的 JSON 的 Java 表示,您就可以使用模板引擎来进行字符串替换。已知的库是FreemarkerVelocityStringTemplate

我个人推荐 Jackson+Freemarker,但都是很好的解决方案。

于 2012-10-18T17:18:35.833 回答
0

Chunk是一个对 JSON 非常友好的模板引擎。循环和条件,标签语法类似于 Mustache,您可以直接从模板中相当优雅地引用嵌套的关联数据数组。

请参阅此答案中 JSON + Chunk 的示例代码。

于 2012-10-18T17:33:55.557 回答
0

试试Apache Velocity,它对文本中的属性替换做了非常相似的事情。

于 2012-10-18T17:23:43.223 回答