From b317fb5471276870b1165f7b8947e0bcb65ee0ea Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 22 Jan 2026 21:13:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dapi=E6=95=B0=E6=8D=AE=E6=BA=90=E4=B8=AD=EF=BC=8Cjson?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=AD=97=E6=AE=B5=E4=BF=9D=E5=AD=98=E4=B8=BA?= =?UTF-8?q?=E4=B8=8D=E6=A0=87=E5=87=86json=E6=A0=BC=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E9=80=9A=E8=BF=87=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=AD=97=E6=AE=B5=E7=9A=84=E5=87=BD=E6=95=B0=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20#17772?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/datasource/ApiProvider.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index d2c5877976..219cfb61e4 100644 --- a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -105,7 +105,7 @@ public class ApiProvider extends Provider { @Override public Status checkDsStatus(DatasourceRequest datasourceRequest) throws Exception { - Status status = new Status(); + Status status = new Status(); status.setStatus(checkStatus(datasourceRequest)); return status; } @@ -226,12 +226,19 @@ public class ApiProvider extends Provider { } } for (JSONObject field : fields) { + String value = Optional.ofNullable(data.get(field.get("originName"))).orElse("").toString(); + if (value.startsWith("{") && value.endsWith("}")) { + try { + value = CommonBeanFactory.getBean(ObjectMapper.class).writeValueAsString(data.get(field.get("originName"))); + } catch (Exception e) { + } + } JSONArray array = field.getJSONArray("value"); if (array != null) { - array.add(Optional.ofNullable(data.get(field.getString("originName"))).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " ")); + array.add(value.replaceAll("\n", " ").replaceAll("\r", " ")); } else { array = new JSONArray(); - array.add(Optional.ofNullable(data.get(field.getString("originName"))).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " ")); + array.add(value.replaceAll("\n", " ").replaceAll("\r", " ")); } field.put("value", array); } @@ -283,7 +290,7 @@ public class ApiProvider extends Provider { JSONObject jsonObject = JSONObject.parseObject(jsonStr, Feature.IgnoreNotMatch); for (String s : jsonObject.keySet()) { String value = jsonObject.getString(s); - if (StringUtils.isNotEmpty(value) && value.startsWith("{")) { + if (StringUtils.isNotEmpty(value) && value.startsWith("{")) { value = JSONObject.toJSONString(jsonObject.getJSONObject(s), SerializerFeature.WriteMapNullValue); } if (StringUtils.isNotEmpty(value) && value.startsWith("[")) { @@ -451,7 +458,15 @@ public class ApiProvider extends Provider { String[] row = new String[apiDefinition.getFields().size()]; int i = 0; for (DatasetTableFieldDTO field : apiDefinition.getFields()) { - row[i] = Optional.ofNullable(data.get(field.getOriginName())).orElse("").toString().replaceAll("\n", " ").replaceAll("\r", " "); + + String value = Optional.ofNullable(data.get(field.getOriginName())).orElse("").toString(); + if (value.startsWith("{") && value.endsWith("}")) { + try { + value = CommonBeanFactory.getBean(ObjectMapper.class).writeValueAsString(data.get(field.getOriginName())); + } catch (Exception e) { + } + } + row[i] = value.replaceAll("\n", " ").replaceAll("\r", " "); i++; } dataList.add(row);