我想从txt文件到json格式获取数据



我有一个json文件,其中有一些模板已经定义,比如:

{
"ownerContext": 0,
"databaseObjects": [
{
"objectName": "**CT_OPERATOR_ROUTE**",
"dateColumnToFilter": "PRODUCTION_DAY",
"whereCondition": "CREATED_BY IS NULL",
"primaryKeyColumnList": null,
"ignoreColumnList": [
"DAYTIME"
],
"includeAuditColumnList": [
"CREATED_DATE",
"CREATED_BY"
],
"generateAnalysis": true,
"analysisStrategy": "FULL_DETAILS"
},
{
"objectName": "**DT_CT_EQPM_EQPOTHER**",
"dateColumnToFilter": null,
"whereCondition": null,
"primaryKeyColumnList": null,
"ignoreColumnList": [
"DAYTIME"
]
...
}

假设我有1000个对象要放入模板中那么我每次都要复制粘贴,有没有办法从我的。txt文件中获取对象名称并将其作为对象名称

的值
我的建议是:
  1. 读取txt文件,将object name保存在列表中,可能是List<String>
  2. 创建POJO映射json对象
  3. 更新object name到POJO使用for循环

例子:

import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws IOException {
List<String> objectNames = getObjectNames();
Context context = updateObjectName(objectNames);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(context);
System.out.println(json);
}
private static List<String> getObjectNames() throws IOException {
Path path = Path.of("api/src/main/resources/test.txt");
return Files.readAllLines(path);
}
public static Context updateObjectName(List<String> objectNames) {
Context context = new Context();
context.setOwnerContext(0);
List<DatabaseObject> databaseObjects = new ArrayList<>();
for (String name : objectNames) {
DatabaseObject dbObject = new DatabaseObject();
dbObject.setObjectName(name);
databaseObjects.add(dbObject);
}
context.setDatabaseObjects(databaseObjects);
return context;
}
@Data
static class Context {
private int ownerContext;
private List<DatabaseObject> databaseObjects;
}
@Data
static class DatabaseObject {
private String objectName;
private String dateColumnToFilter;
}
}

结果

{
"ownerContext" : 0,
"databaseObjects" : [ {
"objectName" : "Object A",
"dateColumnToFilter" : null
}, {
"objectName" : "Object B",
"dateColumnToFilter" : null
}, {
"objectName" : "Object C",
"dateColumnToFilter" : null
} ]
}

为图书馆:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>

最新更新