将DTO转换为JSON

时间:2016-02-25 18:47:14

标签: java json csv

我创建了一个用于将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);
}

1 个答案:

答案 0 :(得分:0)

你不应该独立阅读所有行吗?

TermParsingDTO term = new TermParsingDTO();

这应该是:

List<TermParsingDTO> terms = new ArrayList<>();

在你的循环结束时:

terms.add(term);

然后您的所有记录都在您的列表中。