我创建了一个用于将CSV文件转换为DTO然后转换为JSON结构的类,但是当我转换为JSON时,只得到CSV中的最后一行。
以下是我的代码:
public class TermParsing {
private static final Logger log = Logger.getLogger(TermParsing.class.getName());
Properties prop = new Properties();
String data;
//creating object for the dto class
TermParsingDTO term = new TermParsingDTO();
CsvReader read;
JSONObject json = new JSONObject();
HashMap hmap=new HashMap();
//method to parse the csv file
void changeFileType() throws IOException {
try {
//to get the properties file from the source
FileReader file = new FileReader("./config.txt");
//loading the properties file
prop.load(file);
data = prop.getProperty("File");
String path = prop.getProperty("Path");
//to export the log message to the target
FileHandler fh = new FileHandler(path);
log.addHandler(fh);
//to format the log messages
SimpleFormatter format = new SimpleFormatter();
fh.setFormatter(format);
log.warning("FileNotFoundException may occur");
//reading the input csv file
read = new CsvReader(data);
read.readHeaders();
//to obtain the values from csv file
while (read.readRecord()) {
term.setTerm_Name(Arrays.asList(read.get("Term Name")));
term.setParent_category(Arrays.asList(read.get("Parent Category")));
term.setShort_description(Arrays.asList(read.get("Short Description")));
term.setLong_description(Arrays.asList(read.get("Long Description")));
term.setStatus(Arrays.asList(read.get("Status")));
}
} catch (FileNotFoundException ex) {
Logger.getLogger(TermParsing.class.getName()).log(Level.SEVERE, "FileNotFoundException", ex);
}
}
在这个方法中,我创建了一个仅包含单个值的JSON结构。
void convertToJson() throws IOException {
ObjectMapper map = null;
String jsonInString;
map = new ObjectMapper();
jsonInString = map.writerWithDefaultPrettyPrinter().writeValueAsString(term);
System.out.println(jsonInString);
}