2026-01-28 12:00:40 +08:00
|
|
|
import java.io.FileOutputStream;
|
2023-11-07 15:55:07 +08:00
|
|
|
import java.io.OutputStreamWriter;
|
2026-01-28 12:00:40 +08:00
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
2023-11-07 15:55:07 +08:00
|
|
|
import com.google.gson.JsonArray;
|
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
|
import com.google.gson.GsonBuilder;
|
|
|
|
|
|
|
|
|
|
public class JsonWriter {
|
2026-01-28 13:50:59 +08:00
|
|
|
|
2026-01-28 12:00:40 +08:00
|
|
|
private static JsonObject writeExpFctParam(ExpFctsHelper.ExpFctParam param) {
|
2023-11-07 15:55:07 +08:00
|
|
|
JsonObject data = new JsonObject();
|
2026-01-28 13:50:59 +08:00
|
|
|
data.addProperty("type", param.mVarType);
|
2026-01-28 12:00:40 +08:00
|
|
|
data.addProperty("name", param.mVarName);
|
|
|
|
|
data.addProperty("is_input", param.mIsInput);
|
|
|
|
|
data.addProperty("desc", param.mVarDesc);
|
2023-11-07 15:55:07 +08:00
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-28 12:00:40 +08:00
|
|
|
private static JsonObject writeExpFct(ExpFctsHelper.ExpFct fct) {
|
2023-11-07 15:55:07 +08:00
|
|
|
JsonObject data = new JsonObject();
|
2026-01-28 12:00:40 +08:00
|
|
|
data.addProperty("name", fct.mFctName);
|
2026-01-28 13:50:59 +08:00
|
|
|
data.addProperty("return", fct.mFctRvType);
|
2023-11-07 15:55:07 +08:00
|
|
|
|
2026-01-28 12:00:40 +08:00
|
|
|
JsonArray paramList = new JsonArray();
|
|
|
|
|
for (ExpFctsHelper.ExpFctParam param : fct.mFctParams) {
|
|
|
|
|
paramList.add(writeExpFctParam(param));
|
2023-11-07 15:55:07 +08:00
|
|
|
}
|
2026-01-28 12:00:40 +08:00
|
|
|
data.add("params", paramList);
|
2023-11-07 15:55:07 +08:00
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
}
|
2026-01-28 12:00:40 +08:00
|
|
|
|
|
|
|
|
private static JsonArray writeExpFctCollection(ExpFctsHelper.ExpFctCollection fctCollection) {
|
|
|
|
|
JsonArray data = new JsonArray();
|
|
|
|
|
for (ExpFctsHelper.ExpFct fct : fctCollection.mFcts) {
|
|
|
|
|
data.add(writeExpFct(fct));
|
2023-11-07 15:55:07 +08:00
|
|
|
}
|
2026-01-28 12:00:40 +08:00
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void writeJson(ExpFctsHelper.ExpFctCollection data) throws Exception {
|
|
|
|
|
FileOutputStream fs = new FileOutputStream(CommonHelper.getOutputFilePath("BMExports.json"));
|
|
|
|
|
OutputStreamWriter writer = new OutputStreamWriter(fs, StandardCharsets.UTF_8);
|
|
|
|
|
//Gson gsonInstance = new GsonBuilder().serializeNulls().setPrettyPrinting().disableHtmlEscaping().create();
|
|
|
|
|
Gson gsonInstance = new GsonBuilder().serializeNulls().disableHtmlEscaping().create();
|
|
|
|
|
writer.write(gsonInstance.toJson(writeExpFctCollection(data)));
|
2023-11-07 15:55:07 +08:00
|
|
|
writer.close();
|
|
|
|
|
}
|
|
|
|
|
}
|