我有一個 sql 查詢。
這是我的 abc.class
public class Abc {
private Integer ABC_ID;
private String RECIP_ID, RECIP_FIRST_NAME, RECIP_MIDDLE_NAME;
public Abc() {
//super();
// TODO Auto-generated constructor stub
}
}
其余的是 getter 和 setter;
@RequestMapping(value = "/abc/export", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<List<abc>> getProviderExport(@RequestParam String id, HttpServletResponse response){
List<abc> abcdetails = jdbcTemplate.query(sqlQuery, new BeanPropertyRowMapper<abc>(abc.class));
HttpHeaders responseHeaders = new HttpHeaders();
//responseHeaders.setContentType(MediaType.TEXT_PLAIN);
String filename1 = "output.txt";
//responseHeaders.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
responseHeaders.add("Content-Disposition","attachment; filename=" filename1);
return new ResponseEntity<>(abcdetails, responseHeaders, HttpStatus.OK);
}
當我執行上述代碼并運行api時,我的api提示將輸出檔案保存為output.txt,但是當我打開輸出檔案時,內容仍然是json格式。任何人都可以幫助我如何實作使用制表符分隔和大寫的 output.txt 檔案。
uj5u.com熱心網友回復:
因為你回來了ResponseEntity<List<abc>>。AList<>會自動轉換為陣列 JSON。您需要回傳一個ResponseEntity<String>. 因此,將您List<abc>的String.
像這樣的事情:
final StringBuilder textData = new StringBuilder();
for (final Abc abcDetail : abcdetails) {
final String line = abcDetail.getRECIP_FIRST_NAME() " " abcDetail.getRECIP_ID() " ";//You can add your other field
textData.append(line).append("\n");
}
return new ResponseEntity<>(textData.toString(), responseHeaders, HttpStatus.OK);
uj5u.com熱心網友回復:
您必須使用 Jackson JSON Java Parser 將該 json 格式轉換為文本格式我附上了一個關于如何將 jsno 轉換為帶有制表符分隔和大寫的 txt 檔案的簡短示例的鏈接。
這是鏈接:https : //www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/338997.html
上一篇:在單例方法上使用冰糕介面抽象
