java - 如何将数据填充到 Json 模板

标签 java json templates jsonpath

我有一个 Json 格式作为模板 (Temp.json)。以下是我的模板格式

{
  "products":[
    {
      "ProductTitleName": "",
      "ImageUrl":""
    }
  ]
}

现在我必须将数据填充为这种格式,基本上 products 数组将有许多对象节点。我使用 JsonPath 表达式从原始 Json 中提取相关属性值。我的问题是如何使用此模板并将数据填充到此结构中。

使用Template Json的原因 -

  1. 我使用模板 json 来避免 pojo 类
  2. 虽然 JsonPath 表达式有助于提取必要的属性并将它们设置为目标属性,但我之前构建的最终 Json 输出结果是即时的(运行时)。
  3. 如果假设我稍后要在添加这些属性的同时添加另一个属性,这会更容易,并且可以很好地避免代码更改。

因此,为了避免上述原因,我计划拥有一个模板 json 并遵循该结构,这是一个好方法吗,如果是,请帮助我将数据填充到模板,如果不是,请帮助我采用更好的方法.

最佳答案

如果您只需要避免 pojo 类,您可以使用通用 Map 来做同样的事情。在这种情况下,您不需要解析基本模板。

Map<String, Object> products = new HashMap<>();
List<Map<String, Object>> listProducts = new ArrayList<>();

for () { // Loop over products
    Map<String, Object> product = new HashMap<>();
    product.put("ProductTitleName", "YourTitle");
    product.put("ImageUrl", "YourImageUrl");
    listProducts.add(product);
}

products.put("products", listProducts);
// Now you can use products Map instead of an equivalent pojo class

如果您需要使用模板,请尝试使用 Velocity .它是一个模板引擎,可以很好地构建文本文件(在本例中为 json 文件),但来自模板。它不仅限于文件,如有必要,它也适用于字符串或流。

关于java - 如何将数据填充到 Json 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144711/

相关文章:

java - 如果 bean 初始化失败,则停止 spring web 应用程序

Java:为什么这不创建最后一个文件夹?

c# - 什么是 contentType 和 dataType 以及 jQuery ajax Post 中的数据?

c++ - 你觉得什么是过度概括?

java - Jar 与所有 JRE 版本的兼容性

Java目录错误

android - 是否可以使用相同模型使用 JSONObject 和 RealmObject 进行解析?

javascript - 使用异常键发送 JSON

algorithm - 生成路径的逻辑算法

浮点的 C++ 模板特化