java - Java 中的 Mustache 类型的字符串替换

标签 java string velocity handlebars.js mustache

我的应用程序允许用户为文本等定义一些模板。例如:快捷方式之一可以是hi {{name}},很高兴见到你

我有一个复杂的 json,其中有名称和许多内部 json。我正在java中寻找一种好的mustache类型的实现,它可以将json的值替换为字符串。目前,我正在迭代每个键并替换字符串,但我正在寻找更优雅的解决方案,该解决方案为用户提供更多的模板功能,如循环、条件等,类似于 mustache / Handlebars 。

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

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

也许我错过了一些东西。谢谢。

最佳答案

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

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

一旦获得了 JSON 的正确 Java 表示形式,就可以使用模板引擎来进行字符串替换。已知的库有 Freemarker , VelocityStringTemplate

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

关于java - Java 中的 Mustache 类型的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959886/

相关文章:

android - 尝试在 Cocos2d-X C++ 中设置一个带有整数的 CCLabelTTF 作为其字符串的一部分

javascript - Javascript 中的相等性测试

c# - 将字符串转换为 unicode 表示

java - 如何从字符串矩阵中获取元素的 int 值?

Java正则表达式从字符串中提取测量值

java - 使用应用程序实现更改用户角色场景

java - 在 liferay 6.1.1 中部署主题没有反射(reflect)出任何变化

java - 将速度日志记录更改为控制台

java - 从字符串输入中退出 While 循环

java - 如何根据谓词有效地将对象从一个 Java 集合传输到另一个集合?