我创建了一个用于将csv文件转换为dto然后转换为ojson结构的类,但是当我转换为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);
}
答案 0 :(得分:0)
你不应该独立阅读所有行吗?
TermParsingDTO term = new TermParsingDTO();
这应该是:
List<TermParsingDTO> terms = new ArrayList<>();
在你的循环结束时:
terms.add(term);
然后您的所有记录都在您的列表中。