如何将数据填充到Json模板

时间:2016-08-25 11:58:49

标签: java json templates jsonpath

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

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

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

Reason to use Template Json -

  1. 我使用了模板json来避免pojo类
  2. 虽然JsonPath表达式有助于提取必要的属性并将它们设置为目标属性最终Json输出结果,但我之前构建的是运行时(运行时)。
  3. 如果我想稍后再添加其他属性以及这些属性,那么它将更容易并且更好地避免代码更改。
  4. 所以为了避免上述原因,我计划有一个模板json并坚持这个结构,这是一个很好的方法,如果这样帮助我将数据填充到模板中,如果没有帮助我用更好的方法

1 个答案:

答案 0 :(得分: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

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