如何将数据填充到 Json 模板

Kes*_*ran 5 java templates json jsonpath

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

{
  "products":[
    {
      "ProductTitleName": "",
      "ImageUrl":""
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

Reason to use Template Json ——

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

所以为了避免那些提到的原因,我计划有一个模板 json 并坚持该结构,这是一个好方法,如果是这样,请帮助我将数据填充到模板中,如果没有,请帮助我使用更好的方法。

Dav*_*INO 4

如果您只需要避免 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
Run Code Online (Sandbox Code Playgroud)

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