接受json上传接口
@ApiOperation("接受文件处理为json串")
@PostMapping("/json")
public Result sendJson(MultipartFile multipartFile) {
try {
if (multipartFile == null){
return Result.fail();
}
String json = JsonUtil.convertStreamToString(multipartFile.getInputStream());
logger.info(">>>>>>>>当前处理时间:"+new Date().toLocaleString());
logger.info(">>>>>>>>json读取:"+json);
return Result.ok(json);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return Result.fail();
}
用到工具类
package com.ymx.platform.common.util;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
* @Auther: jiang
* @Date: 2022/10/20 8:56
* @Description:读取文件转换json
*/
public class JsonUtil {
/**
*
* @param jsonString 要保存的JSON串
* @param filePath 保存到的文件路径
* @param fileName 文件名称
* @return
*/
//保存json 文件
public static boolean createJsonFile(String jsonString, String filePath, String fileName) {
// 标记文件生成是否成功
boolean flag = true;
// 拼接文件完整路径
String fullPath = filePath + File.separator + fileName + ".json";
// 生成json格式文件
try {
// 保证创建一个新文件
File file = new File(fullPath);
if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录
file.getParentFile().mkdirs();
}
if (file.exists()) { // 如果已存在,删除旧文件
file.delete();
}
file.createNewFile();
// 格式化json字符串
//jsonString = JsonFormatTool.formatJson2(jsonString);
// 将格式化后的字符串写入文件
Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
write.write(jsonString);
write.flush();
write.close();
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
// 返回是否成功的标记
return flag;
}
/**
* 生成随机文件名:当前年月日时分秒+五位随机数
*
* @return
*/
public static String getRandomFileName() {
SimpleDateFormat simpleDateFormat;
simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = new Date();
String str = simpleDateFormat.format(date);
Random random = new Random();
int rannum = (int) (random.nextDouble() * (99999 - 10000 + 1)) + 10000;// 获取5位随机数
return rannum + str;// 当前时间
}
public static String convertStreamToString(InputStream inputStream){
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}