【问题标题】:How to generate nested entities with freemarker如何使用 freemarker 生成嵌套实体
【发布时间】:2018-07-09 05:52:57
【问题描述】:

我想使用 freemarker 创建一个包含嵌套实体的 json 文件

我应该如何创建模板文件?

实体(为方便起见,您可以更改此结构):

@Data
public class Field {
  private String name;
  private boolean isNested; // 
  private List<Field> fields;
}

数据:

|--NameA
|  false
|  null
|
|--NameB
|  false
|  null
|
|--NameC
|  true
|  |--NameD
   |--false
   |--null
   |
   |--NameE
   |--false
   |--null

我想要的表示:

{
  NameA: {
    Type: NotNested  // not nested, display NotNested
  },
  NameB: {
    Type: NotNested
  },
  NameC: {          // nested, display nested fields
    Nested: {
      NameD: {
        Type: NotNested
      },
      NameE: {
        Type: NotNested
      }
    }
  }
}

【问题讨论】:

标签: java freemarker


【解决方案1】:
File sqlWriteFile = new File("test.json");
FileOutputStream out = new FileOutputStream(sqlWriteFile);
OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");

Map<String, Object> objA = new HashMap<>();
Map<String, Object> objC = new HashMap<>();
Map<String, Object> objB = new HashMap<>();
Map<String, Object> objD = new HashMap<>();

// ......
objA.put("objA", objC);
objC.put("objC", objB);
objB.put("objB", objD);

objectMapper.writerWithDefaultPrettyPrinter().writeValue(writer, objA);

结果:

{
  "objA":{
    "objC":{
      "objB":{
        ...
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2020-07-21
    • 2013-12-03
    • 2016-11-04
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多