diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index aaeb4f4ecf..7aef5dad6d 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -140,7 +140,7 @@ public class ApiUtils { List tableFields = new ArrayList<>(); try { - List lists = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); + List lists = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); for (ApiDefinition apiDefinition : lists) { if (datasourceRequest.getTable().equalsIgnoreCase(apiDefinition.getDeTableName())) { tableFields = getTableFields(apiDefinition); @@ -465,14 +465,9 @@ public class ApiUtils { public static ApiDefinition checkApiDefinition(DatasourceRequest datasourceRequest) throws DEException { ApiDefinition apiDefinition = new ApiDefinition(); - List apiDefinitionList = new ArrayList<>(); TypeReference> listTypeReference = new TypeReference>() { }; - try { - apiDefinitionList = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionList = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); if (!CollectionUtils.isEmpty(apiDefinitionList)) { for (ApiDefinition definition : apiDefinitionList) { if (definition != null && (definition.getType() == null || !definition.getType().equalsIgnoreCase("params"))) { @@ -814,12 +809,7 @@ public class ApiUtils { private static List params(DatasourceRequest datasourceRequest) { TypeReference> listTypeReference = new TypeReference>() { }; - List apiDefinitionListTemp = null; - try { - apiDefinitionListTemp = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionListTemp = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); return apiDefinitionListTemp.stream().filter(apiDefinition -> apiDefinition != null && apiDefinition.getType() != null && apiDefinition.getType().equalsIgnoreCase("params")).collect(Collectors.toList()); } @@ -827,12 +817,8 @@ public class ApiUtils { List apiDefinitionList = new ArrayList<>(); TypeReference> listTypeReference = new TypeReference>() { }; - List apiDefinitionListTemp = null; - try { - apiDefinitionListTemp = objectMapper.readValue(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); - } catch (Exception e) { - DEException.throwException(e); - } + List apiDefinitionListTemp = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference); + if (!CollectionUtils.isEmpty(apiDefinitionListTemp)) { for (ApiDefinition apiDefinition : apiDefinitionListTemp) { if (apiDefinition == null || apiDefinition.getType() == null || apiDefinition.getType().equalsIgnoreCase("params")) { diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 6d415e8eaf..72b254fa36 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -401,7 +401,7 @@ public class DatasourceServer implements DatasourceApi { for (String toCreateTable : toCreateTables) { datasourceRequest.setTable(toCreateTable); try { - datasourceSyncManage.createEngineTable(toCreateTable, (List) invokeMethod(sourceTableRequest.getDatasource().getType(), "getTableFields", DatasourceRequest.class, sourceTableRequest)); + datasourceSyncManage.createEngineTable(toCreateTable, (List) invokeMethod(sourceTableRequest.getDatasource().getType(), "getTableFields", DatasourceRequest.class, datasourceRequest)); } catch (Exception e) { DEException.throwException("Failed to create table " + toCreateTable + ", " + e.getMessage()); } diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue index e0ca1e8894..8eb4fec04d 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue @@ -871,6 +871,7 @@ defineExpose({