diff --git a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index d8efe83d4a..68cb361e6d 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -175,7 +175,12 @@ public class ApiProvider extends Provider{ } List datas = new ArrayList<>(); try { - datas = JsonPath.read(response,apiDefinition.getDataPath()); + Object object = JsonPath.read(response,apiDefinition.getDataPath()); + if(object instanceof List){ + datas = (List)object; + }else { + datas.add((LinkedHashMap)object); + } }catch (Exception e){ throw new Exception("jsonPath 路径错误:" + e.getMessage()); } @@ -215,7 +220,14 @@ public class ApiProvider extends Provider{ private List fetchResult(String result, ApiDefinition apiDefinition){ List dataList = new LinkedList<>(); - List datas = JsonPath.read(result, apiDefinition.getDataPath()); + List datas = new ArrayList<>(); + + Object object = JsonPath.read(result,apiDefinition.getDataPath()); + if(object instanceof List){ + datas = (List)object; + }else { + datas.add((LinkedHashMap)object); + } for (LinkedHashMap data : datas) { String[] row = new String[apiDefinition.getFields().size()]; int i = 0;