packagezf;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;import java.io.*;importjava.util.ArrayList;importjava.util.List;/*** Created by Yan on 2018/4/3.*/
public classExportPostManApiUtil {public staticString readToString(String fileName) {
String encoding= "UTF-8";
File file= newFile(fileName);
Long fileLength=file.length();byte[] fileContent = new byte[fileLength.intValue()];try{
FileInputStream in= newFileInputStream(file);
in.read(fileContent);
in.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}try{return newString(fileContent, encoding);
}catch(UnsupportedEncodingException e) {
System.err.println("The OS does not support " +encoding);
e.printStackTrace();return null;
}
}public static voidmain(String[] args) {//readFile("C:\\Users\\Yan\\Desktop\\api\\b.json");//readFile("C:\\Users\\Yan\\Desktop\\api\\c.json");//readFile("C:\\Users\\Yan\\Desktop\\api\\d.json");//readFile("C:\\Users\\Yan\\Desktop\\api\\e.json");//readFile("C:\\Users\\Yan\\Desktop\\api\\f.json");
readFile("C:\\Users\\Yan\\Desktop\\api\\h.json");
}/*** 解析postman 导出的Json数据
*
*@parampath*/
private static voidreadFile(String path) {
String file=readToString(path);
JSONObject allData=JSONObject.fromObject(file);
String title= allData.getString("name");
String requests= allData.getString("requests");
JSONArray reqList=JSONArray.fromObject(requests);
List postManList = new ArrayList<>();for(Object o : reqList) {
JSONObject jo=(JSONObject) o;
PostMan postMan= newPostMan();
postMan.setName(jo.getString("name"));
postMan.setUrl(jo.getString("url"));
postMan.setMethod(jo.getString("method"));if (!jo.getString("data").equals("null")) {
JSONArray dataArr= JSONArray.fromObject(jo.getString("data"));
List dataList = new ArrayList<>();if (dataArr.size() > 0) {for(Object d : dataArr) {
JSONObject jsonData=(JSONObject) d;
Data data= newData();
data.setKey(jsonData.getString("key"));
data.setType(jsonData.getString("type"));
data.setEnabled(jsonData.getBoolean("enabled"));if (jsonData.containsKey("description")) {
data.setDescription(jsonData.getString("description"));
}
data.setValue(jsonData.getString("value"));
dataList.add(data);
}
}
postMan.setData(dataList);
}
postManList.add(postMan);
}
writeToHtml(title, postManList);
}/*** 数据拼成html
*
*@paramtitle
*@parampostManList*/
private static void writeToHtml(String title, ListpostManList) {
StringBuffer buffer= newStringBuffer();
buffer.append("
" + title + "
");buffer.append("
");for(PostMan pm : postManList) {
buffer.append("
接口名称:" + pm.getName() + "
");buffer.append("
");
buffer.append("
接口地址:" + pm.getUrl() + "
");buffer.append("
");
buffer.append("
请求方式:" + pm.getMethod() + "
");buffer.append("
");
List dataList =pm.getData();if (null != dataList && dataList.size() > 0) {
buffer.append("
请求参数:
");buffer.append("
");
buffer.append("
buffer.append("
");buffer.append("
参数名参数类型是否必填示例值描述");buffer.append("
");for(Data data : dataList) {buffer.append("
");buffer.append("
" + data.getKey() + "" + data.getType() + "" + data.getEnabled() + "" + data.getValue() + "" + data.getDescription() + "");buffer.append("
");}
buffer.append("
");buffer.append("
");
}
}
System.out.println(buffer.toString());
}
}
该博客介绍了一个Java工具类`ExportPostManApiUtil`,用于读取Postman导出的JSON数据,并将其解析为接口名称、地址、请求方式及请求参数等信息,最终将这些信息拼接成HTML格式,方便查看和管理API文档。
2171

被折叠的 条评论
为什么被折叠?



