From 7b6085d4983cfe4e5273c9ef77677299128a2b78 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 17 Apr 2025 18:58:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E6=9F=90?= =?UTF-8?q?=E6=9D=A1=E8=AE=B0=E5=BD=95=E4=B8=8D=E5=8C=85=E5=90=AB=E6=9F=90?= =?UTF-8?q?=E4=B8=AA=E5=AD=97=E6=AE=B5=E6=97=B6=EF=BC=8C=E7=BD=AE=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/provider/ApiUtils.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) 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 60d68f572e..504af43734 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 @@ -446,23 +446,34 @@ public class ApiUtils { return response; } - private static void previewNum(List> field) { - for (Map stringObjectMap : field) { + private static void previewNum(List> fields, String response) { + int previewNum = 100; + for (Map field : fields) { JSONArray newArray = new JSONArray(); - if (stringObjectMap.get("value") != null) { - try { - TypeReference listTypeReference = new TypeReference() { - }; - JSONArray array = objectMapper.readValue(stringObjectMap.get("value").toString(), listTypeReference); - if (array.size() > 100) { - for (int i = 0; i < Math.min(100, array.size()); i++) { - newArray.add(array.get(i)); + if (field.get("value") != null) { + Object object = JsonPath.using(jsonPathConf).parse(response).read(field.get("jsonPath").toString()); + int i = 0; + if (object instanceof List) { + for (Object o : (List) object) { + if (Objects.isNull(o)) { + newArray.add(""); + } else { + newArray.add(o.toString()); + } + i++; + if (i >= previewNum) { + break; } - stringObjectMap.put("value", newArray); } - } catch (Exception e) { - + } else { + if (object != null) { + newArray.add(object.toString()); + } } + field.put("value", newArray); + } else { + List> childrenFields = (List>) field.get("children"); + previewNum(childrenFields, response); } } } @@ -505,7 +516,7 @@ public class ApiUtils { rootPath = "$"; handleStr(apiDefinition, response, fields, rootPath); } - previewNum(fields); + previewNum(fields, response); apiDefinition.setJsonFields(fields); return apiDefinition; } else { @@ -552,7 +563,6 @@ public class ApiUtils { }; array = objectMapper.readValue(field.get("value").toString(), listTypeReference); } catch (Exception e) { - e.printStackTrace(); DEException.throwException(e); } array.add(Optional.ofNullable(data.get(field.get("originName"))).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " "));