使用java生成json文件


**需求**:使用java代碼生成一個json格式的文件,自定義相關內容
**實現**:
代碼如下:
package com.zt.posts.common.util;


import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.*;

/**
* 生成json文件工具類 by xwd
*/

@Slf4j
public class JSONUtils {

//封裝創建json文件的方法
public static boolean createJSONFile(Object obj, String fileName){
boolean flag = true;

try {
//獲取文件的絕對路徑 根路徑
String filePath = ResourceUtils.getURL("classpath:").getPath();
// String fileName = "app";
String jsonString = com.alibaba.druid.support.json.JSONUtils.toJSONString(obj);

// 拼接文件完整路徑// 生成json格式文件
String fullPath = filePath + File.separator + fileName + ".json";

// 保證創建一個新文件
File file = new File(fullPath);
if (!file.getParentFile().exists()) { // 如果父目錄不存在,創建父目錄
file.getParentFile().mkdirs();
}
if (file.exists()) { // 如果已存在,刪除舊文件
file.delete();
}
file.createNewFile();//創建新文件

if(jsonString.indexOf("'")!=-1){
//將單引號轉義一下,因為JSON串中的字符串類型可以單引號引起來的
jsonString = jsonString.replaceAll("'", "\\'");
}
if(jsonString.indexOf("\"")!=-1){
//將雙引號轉義一下,因為JSON串中的字符串類型可以單引號引起來的
jsonString = jsonString.replaceAll("\"", "\\\"");
}

if(jsonString.indexOf("\r\n")!=-1){
//將回車換行轉換一下,因為JSON串中字符串不能出現顯式的回車換行
jsonString = jsonString.replaceAll("\r\n", "\\u000d\\u000a");
}
if(jsonString.indexOf("\n")!=-1){
//將換行轉換一下,因為JSON串中字符串不能出現顯式的換行
jsonString = jsonString.replaceAll("\n", "\\u000a");
}
// 將格式化后的字符串寫入文件
Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
log.info("json文件內容:" + jsonString);
write.write(jsonString);
log.info("文件創建成功!");
write.flush();
write.close();
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
return flag;
}

public static void main(String[] args) {

Map<String, Object> map = new HashMap<>();

List<Object> list = new ArrayList<>();

String [] strs = {
"近三年公務員年度考核結果曾被定為基本稱職",
"近三年111公務員年度考核結果曾被定為基本稱職",
"近三年2公務員年度考核結果曾被定為基本稱職"
};

for(int i=0; i< strs.length; i++){
Map<String, Object> infoMap = new HashMap<>();

infoMap.put("id", "00" + (i + 1));
infoMap.put("context", strs[i]);
list.add(infoMap);
}

map.put("data", list);

//獲取文件的絕對路徑 根路徑
// String filePath = ResourceUtils.getURL("classpath:").getPath();
String fileName = "app";
String jsonString = com.alibaba.druid.support.json.JSONUtils.toJSONString(map);

// 拼接文件完整路徑// 生成json格式文件
// String fullPath = filePath + File.separator + fileName + ".json";

boolean success = JSONUtils.createJSONFile(map, fileName);
if (success){
log.info("ok");
}else {
log.info("error");
}
}
}


**總結**:
自定義數據源,以及鍵名。調用靜態方法createJSONFile方法 ,傳入集合以及文件名即可生成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM