package org.jeecg.common.util.jsonschema; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @Slf4j public class JsonschemaUtil { /** * 生成JsonSchema * * @param descrip * @param propertyList * @return */ public static JSONObject getJsonSchema(JsonSchemaDescrip descrip, List propertyList) { JSONObject obj = new JSONObject(); obj.put("$schema", descrip.get$schema()); obj.put("type", descrip.getType()); obj.put("title", descrip.getTitle()); List requiredArr = descrip.getRequired(); obj.put("required", requiredArr); JSONObject properties = new JSONObject(); for (CommonProperty commonProperty : propertyList) { Map map = commonProperty.getPropertyJson(); properties.put(map.get("key").toString(), map.get("prop")); } obj.put("properties", properties); //鬼知道这里为什么报错 org.jeecg.modules.system.model.DictModel cannot be cast to org.jeecg.modules.system.model.DictModel //log.info("---JSONSchema--->"+obj.toJSONString()); return obj; } /** * 生成JsonSchema 用于子对象 * @param title 子对象描述 * @param requiredArr 子对象必填属性名集合 * @param propertyList 子对象属性集合 * @return */ public static JSONObject getSubJsonSchema(String title,List requiredArr,List propertyList) { JSONObject obj = new JSONObject(); obj.put("type", "object"); obj.put("view", "tab"); obj.put("title", title); if(requiredArr==null) { requiredArr = new ArrayList(); } obj.put("required", requiredArr); JSONObject properties = new JSONObject(); for (CommonProperty commonProperty : propertyList) { Map map = commonProperty.getPropertyJson(); properties.put(map.get("key").toString(), map.get("prop")); } obj.put("properties", properties); //log.info("---JSONSchema--->"+obj.toString()); return obj; } }