提问人:pbuchheit 提问时间:10/26/2023 更新时间:10/26/2023 访问量:28
用于从模板创建 json 的 Java 库
Java library for creating json from a template
问:
我有一个应用程序,需要使用 json 模板基于一些 java 数据构建 json 字符串。目前,我们只使用大括号 {} 来表示占位符文本,然后手动将这些字符串替换为我们的数据。它可以工作,但它很混乱且容易出错。我希望有一个 java 库可以以更好的方式做到这一点,但到目前为止我还没有找到任何东西。
我首先看了 Freemarker 和 Thymeleaf。虽然它们可以产生我想要的输出,但似乎都不是为了使用 json 模板作为输入而设计的。另一端是像 Gson 和 Jackson 这样的 json 序列化器。这些库可以在 java 对象和 json 字符串之间进行转换,但它们似乎不适合简单地将 json 模板转换为输出字符串。他们可能会做到,但会有一堆开销。
我只想要一些可以接受 json 模板和一些数据对象并输出填充的 json 字符串的东西。如果我有一个模板,比如:
{
"elementType": "formInputCheckboxGroup",
"label": {channel.name},
"name": {channel.id},
"options": [
{
"value": "daily",
"label": "Daily Email Digest"
},
{
"value": "individual",
"label": "Individual Email"
}
],
"value": {channel.values}
}
以及一个 Java 对象,如
public class Channel{
public String name;
public String id;
public String[] values;
public ChannelMessages(String name, String id, String[] values) {
this.name = name;
this.id = id;
this.values = values;
}
}
我可以打电话
Template.parse("template.json", {"channel": new Channel("a", "b", ["1", "2", "3"])});
并得到如下输出:
{
"elementType": "formInputCheckboxGroup",
"label": "a",
"name": "b",
"options": [
{
"value": "daily",
"label": "Daily Email Digest"
},
{
"value": "individual",
"label": "Individual Email"
}
],
"value": ["1","2","3"]
}
答: 暂无答案
评论