This is an automated email from the ASF dual-hosted git repository.

terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 2cda4978d2f Align JsonEngine method names with YamlEngine (#39488)
2cda4978d2f is described below

commit 2cda4978d2f9b77249648b348063d4e00f9f1cc2
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Aug 16 19:12:14 2026 +0800

    Align JsonEngine method names with YamlEngine (#39488)
---
 .../result/impl/local/LocalDataQueryResultRow.java |  8 ++---
 .../shardingsphere/infra/util/json/JsonEngine.java |  8 ++---
 .../infra/util/json/JsonEngineTest.java            | 24 ++++++-------
 .../importer/sink/type/PipelineDataSourceSink.java |  4 +--
 .../data/pipeline/core/job/id/PipelineJobId.java   |  2 +-
 .../incremental/client/MySQLBinlogClient.java      |  6 ++--
 .../wal/decode/MppdbDecodingPlugin.java            |  2 +-
 .../wal/decode/MppdbDecodingPluginTest.java        | 42 +++++++++++-----------
 .../query/ShowTransmissionRuleQueryResult.java     |  2 +-
 .../query/ShowTransmissionRuleQueryResultTest.java |  6 ++--
 .../scenario/migration/api/MigrationJobAPI.java    |  2 +-
 .../AbstractMCPToolSpecificationFactoryTest.java   |  2 +-
 .../tool/MCPCallToolResultFactoryTest.java         |  2 +-
 .../metadata/GovernanceMetadataQueryService.java   |  2 +-
 .../mcp/registry/MCPRegistryMetadataCommand.java   |  4 +--
 .../registry/MCPRegistryMetadataCommandTest.java   |  4 +--
 .../workflow/service/WorkflowAlgorithmUtils.java   |  2 +-
 .../result/SQLExecutionColumnDefinitionTest.java   |  2 +-
 .../export/ExportStorageNodesExecutor.java         |  2 +-
 .../updatable/imports/ImportMetaDataExecutor.java  |  2 +-
 .../handler/distsql/rul/ParseDistSQLExecutor.java  |  2 +-
 .../util/ClusterExportMetaDataGenerator.java       |  2 +-
 .../export/ExportMetaDataExecutorTest.java         |  2 +-
 .../distsql/rul/ParseDistSQLExecutorTest.java      |  4 +--
 .../util/ClusterExportMetaDataGeneratorTest.java   |  6 ++--
 .../e2e/agent/metrics/asserts/MetricAssert.java    |  4 +--
 .../e2e/agent/jaeger/asserts/JaegerSpanAssert.java |  4 +--
 .../e2e/agent/zipkin/asserts/ZipkinSpanAssert.java |  2 +-
 .../llm/conversation/LLMConversationRunner.java    |  2 +-
 .../e2e/mcp/llm/conversation/LLMMCPJsonValues.java |  2 +-
 .../artifact/LLMConversationArtifactWriter.java    |  8 ++---
 .../conversation/client/LLMChatModelClient.java    |  4 +--
 .../type/GitHubTestParameterLoadStrategy.java      |  2 +-
 33 files changed, 86 insertions(+), 86 deletions(-)

diff --git 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/local/LocalDataQueryResultRow.java
 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/local/LocalDataQueryResultRow.java
index db740b743bf..43c67a3fee4 100644
--- 
a/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/local/LocalDataQueryResultRow.java
+++ 
b/infra/merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/local/LocalDataQueryResultRow.java
@@ -58,15 +58,15 @@ public final class LocalDataQueryResultRow {
             return ((Enum<?>) data).name();
         }
         if (data instanceof Properties) {
-            return ((Properties) data).isEmpty() ? "" : 
JsonEngine.toJsonString(convert((Properties) data));
+            return ((Properties) data).isEmpty() ? "" : 
JsonEngine.marshal(convert((Properties) data));
         }
         if (data instanceof Map) {
-            return ((Map<?, ?>) data).isEmpty() ? "" : 
JsonEngine.toJsonString(data);
+            return ((Map<?, ?>) data).isEmpty() ? "" : 
JsonEngine.marshal(data);
         }
         if (data instanceof Collection) {
-            return ((Collection<?>) data).isEmpty() ? "" : 
JsonEngine.toJsonString(data);
+            return ((Collection<?>) data).isEmpty() ? "" : 
JsonEngine.marshal(data);
         }
-        return JsonEngine.toJsonString(data);
+        return JsonEngine.marshal(data);
     }
     
     private Map<Object, Object> convert(final Properties props) {
diff --git 
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonEngine.java
 
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonEngine.java
index 0a5b9b67a3a..271f6bc7eee 100644
--- 
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonEngine.java
+++ 
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonEngine.java
@@ -55,7 +55,7 @@ public final class JsonEngine {
      * @return json string
      * @throws JsonException when object cannot be serialized
      */
-    public static String toJsonString(final Object obj) {
+    public static String marshal(final Object obj) {
         try {
             return MAPPER.writeValueAsString(obj);
         } catch (final JsonProcessingException ex) {
@@ -70,7 +70,7 @@ public final class JsonEngine {
      * @return pretty JSON string
      * @throws JsonException when object cannot be serialized
      */
-    public static String toPrettyJsonString(final Object obj) {
+    public static String marshalPretty(final Object obj) {
         try {
             return 
MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
         } catch (final JsonProcessingException ex) {
@@ -87,7 +87,7 @@ public final class JsonEngine {
      * @return object
      * @throws JsonException when JSON cannot be deserialized
      */
-    public static <T> T fromJsonString(final String value, final Class<T> 
clazz) {
+    public static <T> T unmarshal(final String value, final Class<T> clazz) {
         try {
             return MAPPER.readValue(value, clazz);
         } catch (final JsonProcessingException ex) {
@@ -104,7 +104,7 @@ public final class JsonEngine {
      * @return object
      * @throws JsonException when JSON cannot be deserialized
      */
-    public static <T> T fromJsonString(final String value, final 
JsonTypeReference<T> typeReference) {
+    public static <T> T unmarshal(final String value, final 
JsonTypeReference<T> typeReference) {
         try {
             return MAPPER.readValue(value, 
MAPPER.getTypeFactory().constructType(typeReference.getType()));
         } catch (final JsonProcessingException ex) {
diff --git 
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/json/JsonEngineTest.java
 
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/json/JsonEngineTest.java
index 29fa6e58975..d53f6d45901 100644
--- 
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/json/JsonEngineTest.java
+++ 
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/json/JsonEngineTest.java
@@ -38,7 +38,7 @@ class JsonEngineTest {
     @ParameterizedTest(name = "{0}")
     @MethodSource("getJsonConfigurationArguments")
     void assertJsonConfigurations(final String name, final Object value, final 
String expected) {
-        assertThat(JsonEngine.toJsonString(value), is(expected));
+        assertThat(JsonEngine.marshal(value), is(expected));
     }
     
     private static Stream<Arguments> getJsonConfigurationArguments() {
@@ -50,36 +50,36 @@ class JsonEngineTest {
     }
     
     @Test
-    void assertToJsonString() {
-        assertThat(JsonEngine.toJsonString(Collections.singletonMap("k", 
"v")), is("{\"k\":\"v\"}"));
+    void assertMarshal() {
+        assertThat(JsonEngine.marshal(Collections.singletonMap("k", "v")), 
is("{\"k\":\"v\"}"));
     }
     
     @Test
-    void assertToPrettyJsonString() {
-        assertThat(JsonEngine.toPrettyJsonString(Collections.singletonMap("k", 
"v")), is("{" + System.lineSeparator() + "  \"k\" : \"v\"" + 
System.lineSeparator() + "}"));
+    void assertMarshalPretty() {
+        assertThat(JsonEngine.marshalPretty(Collections.singletonMap("k", 
"v")), is("{" + System.lineSeparator() + "  \"k\" : \"v\"" + 
System.lineSeparator() + "}"));
     }
     
     @Test
-    void assertFromJsonStringToClass() {
-        
assertThat(JsonEngine.fromJsonString("{\"name\":\"foo\",\"ignored\":true}", 
JsonConfigurationFixture.class).getName(), is("foo"));
+    void assertUnmarshalToClass() {
+        assertThat(JsonEngine.unmarshal("{\"name\":\"foo\",\"ignored\":true}", 
JsonConfigurationFixture.class).getName(), is("foo"));
     }
     
     @Test
-    void assertFromJsonStringToJsonTypeReference() {
-        List<JsonConfigurationFixture> actual = 
JsonEngine.fromJsonString("[{\"name\":\"foo\"}]", new 
JsonTypeReference<List<JsonConfigurationFixture>>() {
+    void assertUnmarshalToJsonTypeReference() {
+        List<JsonConfigurationFixture> actual = 
JsonEngine.unmarshal("[{\"name\":\"foo\"}]", new 
JsonTypeReference<List<JsonConfigurationFixture>>() {
         });
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next().getName(), is("foo"));
     }
     
     @Test
-    void assertFromMalformedJsonString() {
-        assertThrows(JsonException.class, () -> JsonEngine.fromJsonString("{", 
Object.class));
+    void assertUnmarshalMalformedJson() {
+        assertThrows(JsonException.class, () -> JsonEngine.unmarshal("{", 
Object.class));
     }
     
     @Test
     void assertSerializeCyclicObject() {
-        assertThrows(JsonException.class, () -> JsonEngine.toJsonString(new 
CyclicFixture()));
+        assertThrows(JsonException.class, () -> JsonEngine.marshal(new 
CyclicFixture()));
     }
     
     @Getter
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/type/PipelineDataSourceSink.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/type/PipelineDataSourceSink.java
index d87d424848e..6a6e299dc32 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/type/PipelineDataSourceSink.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/type/PipelineDataSourceSink.java
@@ -222,11 +222,11 @@ public final class PipelineDataSourceSink implements 
PipelineSink {
             int updateCount = preparedStatement.executeUpdate();
             if (1 != updateCount) {
                 log.warn("Update failed, update count: {}, sql: {}, set 
columns: {}, sharding columns: {}, condition columns: {}",
-                        updateCount, sql, setColumns, 
JsonEngine.toJsonString(shardingColumns), 
JsonEngine.toJsonString(conditionColumns));
+                        updateCount, sql, setColumns, 
JsonEngine.marshal(shardingColumns), JsonEngine.marshal(conditionColumns));
             }
         } catch (final SQLException ex) {
             log.error("execute update failed, sql: {}, set columns: {}, 
sharding columns: {}, condition columns: {}, error message: {}, data record: 
{}",
-                    sql, setColumns, JsonEngine.toJsonString(shardingColumns), 
JsonEngine.toJsonString(conditionColumns), ex.getMessage(), dataRecord);
+                    sql, setColumns, JsonEngine.marshal(shardingColumns), 
JsonEngine.marshal(conditionColumns), ex.getMessage(), dataRecord);
             throw ex;
         } finally {
             runningStatement.set(null);
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/id/PipelineJobId.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/id/PipelineJobId.java
index 29de28be080..d742b47b6d5 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/id/PipelineJobId.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/id/PipelineJobId.java
@@ -51,6 +51,6 @@ public interface PipelineJobId {
      * @return marshaled suffix
      */
     default String marshalSuffix() {
-        return 
DigestUtils.md5Hex(JsonEngine.toJsonString(this).getBytes(StandardCharsets.UTF_8));
+        return 
DigestUtils.md5Hex(JsonEngine.marshal(this).getBytes(StandardCharsets.UTF_8));
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/MySQLBinlogClient.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/MySQLBinlogClient.java
index df3be8badb8..ff7dd63f5b7 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/MySQLBinlogClient.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/MySQLBinlogClient.java
@@ -363,7 +363,7 @@ public final class MySQLBinlogClient {
         
         @Override
         public void exceptionCaught(final ChannelHandlerContext ctx, final 
Throwable cause) {
-            log.error("MySQLBinlogEventHandler protocol resolution error, 
channel: {}, lastBinlogEvent: {}", ctx.channel(), 
JsonEngine.toJsonString(lastBinlogEvent.get()), cause);
+            log.error("MySQLBinlogEventHandler protocol resolution error, 
channel: {}, lastBinlogEvent: {}", ctx.channel(), 
JsonEngine.marshal(lastBinlogEvent.get()), cause);
             continuousFailureCount.incrementAndGet();
             closeChannel(false);
         }
@@ -378,7 +378,7 @@ public final class MySQLBinlogClient {
         private synchronized void reconnect() {
             log.info("Reconnect failure count: {}", 
continuousFailureCount.get());
             if (continuousFailureCount.get() >= 5) {
-                log.error("MySQL binlog client failed permanently, 
lastBinlogEvent: {}", JsonEngine.toJsonString(lastBinlogEvent.get()));
+                log.error("MySQL binlog client failed permanently, 
lastBinlogEvent: {}", JsonEngine.marshal(lastBinlogEvent.get()));
                 closeChannel(true);
                 return;
             }
@@ -388,7 +388,7 @@ public final class MySQLBinlogClient {
                 // CHECKSTYLE:OFF
             } catch (final RuntimeException ex) {
                 // CHECKSTYLE:ON
-                log.error("Reconnect failed permanently, lastBinlogEvent: {}", 
JsonEngine.toJsonString(lastBinlogEvent.get()), ex);
+                log.error("Reconnect failed permanently, lastBinlogEvent: {}", 
JsonEngine.marshal(lastBinlogEvent.get()), ex);
                 closeChannel(true);
                 return;
             }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPlugin.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPlugin.java
index a7488ccfe8b..e7f70ed29d9 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPlugin.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPlugin.java
@@ -119,7 +119,7 @@ public final class MppdbDecodingPlugin implements 
DecodingPlugin {
     
     private AbstractRowEvent readTableEvent(final String mppData) {
         MppTableData mppTableData;
-        mppTableData = JsonEngine.fromJsonString(mppData, MppTableData.class);
+        mppTableData = JsonEngine.unmarshal(mppData, MppTableData.class);
         String rowEventType = mppTableData.getOpType();
         PipelineSQLOperationType type;
         try {
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPluginTest.java
 
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPluginTest.java
index 1622cf8222c..144285bc1c9 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPluginTest.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/incremental/wal/decode/MppdbDecodingPluginTest.java
@@ -70,7 +70,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsType(insertTypes);
         tableData.setColumnsName(IntStream.range(0, 
insertTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
         tableData.setColumnsVal(IntStream.range(0, 
insertTypes.length).mapToObj(idx -> "'1 2 3'").toArray(String[]::new));
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -85,7 +85,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"character varying"});
         tableData.setColumnsVal(new String[]{"'1 2 3'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         UpdateRowEvent actual = (UpdateRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -102,7 +102,7 @@ class MppdbDecodingPluginTest {
         tableData.setOldKeysType(deleteTypes);
         tableData.setOldKeysName(IntStream.range(0, 
deleteTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
         tableData.setOldKeysVal(deleteValues);
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         DeleteRowEvent actual = (DeleteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -117,7 +117,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"money"});
         tableData.setColumnsVal(new String[]{"'$1.08'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -133,7 +133,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"boolean"});
         tableData.setColumnsVal(new String[]{Boolean.TRUE.toString()});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -152,7 +152,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(IntStream.range(0, 
insertTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
         tableData.setColumnsType(insertTypes);
         tableData.setColumnsVal(insertValues);
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         TimestampUtils timestampUtils = mock(TimestampUtils.class);
         when(timestampUtils.toTime(null, 
"21:21:21")).thenReturn(Time.valueOf("21:21:21"));
         when(timestampUtils.toTime(null, "21:21:21 
pst")).thenReturn(Time.valueOf("13:21:21"));
@@ -175,7 +175,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"bytea"});
         tableData.setColumnsVal(new String[]{"'\\xff00ab'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -192,7 +192,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"raw"});
         tableData.setColumnsVal(new String[]{"'7D'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
         assertThat(actual.getTableName(), is("test"));
@@ -215,7 +215,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"character varying"});
         tableData.setColumnsVal(new String[]{"1 2 3"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         assertThrows(IngestException.class, () -> new 
MppdbDecodingPlugin(null, false, false).decode(data, logSequenceNumber));
     }
     
@@ -229,7 +229,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsVal(new String[]{"'1 2 3'"});
         TimestampUtils timestampUtils = mock(TimestampUtils.class);
         when(timestampUtils.toTime(null, "1 2 3")).thenThrow(new 
SQLException(""));
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         assertThrows(DecodingException.class, () -> new 
MppdbDecodingPlugin(new OpenGaussTimestampUtils(timestampUtils), true, 
false).decode(data, logSequenceNumber));
     }
     
@@ -241,7 +241,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"raw"});
         tableData.setColumnsVal(new String[]{"'7D'"});
-        List<String> dataList = Arrays.asList("BEGIN 1", 
JsonEngine.toJsonString(tableData), JsonEngine.toJsonString(tableData),
+        List<String> dataList = Arrays.asList("BEGIN 1", 
JsonEngine.marshal(tableData), JsonEngine.marshal(tableData),
                 "COMMIT 1 (at 2022-10-27 04:19:39.476261+00) CSN 3468");
         MppdbDecodingPlugin mppdbDecodingPlugin = new 
MppdbDecodingPlugin(null, true, false);
         List<AbstractWALEvent> expectedEvent = new LinkedList<>();
@@ -265,7 +265,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"raw"});
         tableData.setColumnsVal(new String[]{"'7D'"});
-        List<String> dataList = Arrays.asList("BEGIN CSN: 951909 first_lsn: 
5/59825858", JsonEngine.toJsonString(tableData), 
JsonEngine.toJsonString(tableData), "commit xid: 1006076");
+        List<String> dataList = Arrays.asList("BEGIN CSN: 951909 first_lsn: 
5/59825858", JsonEngine.marshal(tableData), JsonEngine.marshal(tableData), 
"commit xid: 1006076");
         MppdbDecodingPlugin mppdbDecodingPlugin = new 
MppdbDecodingPlugin(null, true, true);
         List<AbstractWALEvent> actual = new LinkedList<>();
         for (String each : dataList) {
@@ -288,7 +288,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"tsrange"});
         tableData.setColumnsVal(new String[]{"'[\"2020-01-01 
00:00:00\",\"2021-01-01 00:00:00\")'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         Object byteaObj = actual.getAfterRow().getFirst();
         assertThat(byteaObj, isA(PGobject.class));
@@ -303,7 +303,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"daterange"});
         tableData.setColumnsVal(new String[]{"'[2020-01-02,2021-01-02)'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         Object byteaObj = actual.getAfterRow().getFirst();
         assertThat(byteaObj, isA(PGobject.class));
@@ -318,7 +318,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"tsquery"});
         tableData.setColumnsVal(new String[]{"'''fff'' | ''faa'''"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         Object byteaObj = actual.getAfterRow().getFirst();
         assertThat(byteaObj.toString(), is("'fff' | 'faa'"));
@@ -332,7 +332,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"tinyint"});
         tableData.setColumnsVal(new String[]{"255"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(data, logSequenceNumber);
         Object byteaObj = actual.getAfterRow().getFirst();
         assertThat(byteaObj, is(255));
@@ -348,7 +348,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsType(columnTypes);
         String[] columnValues = new String[]{"10.1", "b101", "1.5", "2.5", 
"'1.08'", "'\\x'", "'\\x01'", "'abc year'", "a", "null", "'[\"2020-01-01 
00:00:00+00\",\"2021-01-01 00:00:00+00\"]'"};
         tableData.setColumnsVal(columnValues);
-        WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, 
false).decode(ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes()), 
logSequenceNumber);
+        WriteRowEvent actual = (WriteRowEvent) new MppdbDecodingPlugin(null, 
false, false).decode(ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes()), 
logSequenceNumber);
         assertThat(actual.getAfterRow().getFirst(), is(new 
BigDecimal("10.1")));
         assertThat(actual.getAfterRow().get(1), is("101"));
         assertThat(actual.getAfterRow().get(2), is(1.5F));
@@ -395,7 +395,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"character varying"});
         tableData.setColumnsVal(new String[]{"'1'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         assertThrows(IngestException.class, () -> new 
MppdbDecodingPlugin(null, false, false).decode(data, logSequenceNumber));
     }
     
@@ -409,7 +409,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsVal(new String[]{"'2020-01-01'"});
         TimestampUtils timestampUtils = mock(TimestampUtils.class);
         when(timestampUtils.toTimestamp(null, "2020-01-01")).thenThrow(new 
SQLException(""));
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         assertThrows(DecodingException.class, () -> new 
MppdbDecodingPlugin(new OpenGaussTimestampUtils(timestampUtils), false, 
false).decode(data, logSequenceNumber));
     }
     
@@ -421,7 +421,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"raw"});
         tableData.setColumnsVal(new String[]{"'7D'"});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         try (MockedConstruction<PGobject> ignored = 
mockConstruction(PGobject.class, (mocked, mockContext) -> doThrow(new 
SQLException()).when(mocked).setValue(anyString()))) {
             WriteRowEvent actual = (WriteRowEvent) new 
MppdbDecodingPlugin(null, false, false).decode(data, logSequenceNumber);
             assertNull(actual.getAfterRow().getFirst());
@@ -437,7 +437,7 @@ class MppdbDecodingPluginTest {
         tableData.setColumnsName(new String[]{"data"});
         tableData.setColumnsType(new String[]{"bytea"});
         tableData.setColumnsVal(new String[]{hexValue});
-        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.toJsonString(tableData).getBytes());
+        ByteBuffer data = 
ByteBuffer.wrap(JsonEngine.marshal(tableData).getBytes());
         assertThrows(IllegalArgumentException.class, () -> new 
MppdbDecodingPlugin(null, false, false).decode(data, logSequenceNumber));
     }
     
diff --git 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResult.java
 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResult.java
index 83e8a0b4e7d..e0cdc11cb67 100644
--- 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResult.java
+++ 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResult.java
@@ -51,7 +51,7 @@ public final class ShowTransmissionRuleQueryResult {
     }
     
     private String getString(final Object obj) {
-        return null == obj ? "" : JsonEngine.toJsonString(obj);
+        return null == obj ? "" : JsonEngine.marshal(obj);
     }
     
     /**
diff --git 
a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResultTest.java
 
b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResultTest.java
index 67e4bce8d68..62afc7f76c0 100644
--- 
a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResultTest.java
+++ 
b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/query/ShowTransmissionRuleQueryResultTest.java
@@ -56,9 +56,9 @@ class ShowTransmissionRuleQueryResultTest {
         Collection<LocalDataQueryResultRow> actual = new 
ShowTransmissionRuleQueryResult("MIGRATION").getRows();
         assertThat(actual.size(), is(1));
         LocalDataQueryResultRow actualRow = actual.iterator().next();
-        assertThat(actualRow.getCell(1), 
is(JsonEngine.toJsonString(readConfig)));
-        assertThat(actualRow.getCell(2), 
is(JsonEngine.toJsonString(writeConfig)));
-        assertThat(actualRow.getCell(3), 
is(JsonEngine.toJsonString(streamChannel)));
+        assertThat(actualRow.getCell(1), is(JsonEngine.marshal(readConfig)));
+        assertThat(actualRow.getCell(2), is(JsonEngine.marshal(writeConfig)));
+        assertThat(actualRow.getCell(3), 
is(JsonEngine.marshal(streamChannel)));
     }
     
     @Test
diff --git 
a/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
 
b/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
index b56997c2ecf..c28194c3a7c 100644
--- 
a/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
+++ 
b/kernel/data-pipeline/scenario/migration/core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/MigrationJobAPI.java
@@ -271,7 +271,7 @@ public final class MigrationJobAPI implements 
TransmissionJobAPI {
             props.add(getStandardProperty(standardProps, "minPoolSize"));
             props.add(getStandardProperty(standardProps, "readOnly"));
             Map<String, Object> otherProps = 
value.getCustomProperties().getProperties();
-            props.add(otherProps.isEmpty() ? "" : 
JsonEngine.toJsonString(otherProps));
+            props.add(otherProps.isEmpty() ? "" : 
JsonEngine.marshal(otherProps));
             result.add(props);
         }
         return result;
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
index abf685b8b5a..c3178abc63f 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/AbstractMCPToolSpecificationFactoryTest.java
@@ -179,7 +179,7 @@ abstract class AbstractMCPToolSpecificationFactoryTest {
     }
     
     protected Map<String, Object> getTextContentPayload(final CallToolResult 
actual) {
-        return JsonEngine.fromJsonString(((TextContent) 
actual.content().getFirst()).text(), new JsonTypeReference<>() {
+        return JsonEngine.unmarshal(((TextContent) 
actual.content().getFirst()).text(), new JsonTypeReference<>() {
         });
     }
     
diff --git 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
index 6ac811ff680..7cff6ffa406 100644
--- 
a/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
+++ 
b/mcp/bootstrap/src/test/java/org/apache/shardingsphere/mcp/bootstrap/transport/capability/tool/MCPCallToolResultFactoryTest.java
@@ -116,7 +116,7 @@ class MCPCallToolResultFactoryTest extends 
AbstractMCPToolSpecificationFactoryTe
         assertThat(actualPayload.get("status"), is("failed"));
         assertFalse(((Map<?, ?>) 
actualPayload.get("recovery")).containsKey("database"));
         assertFalse(((Map<?, ?>) 
actualPayload.get("recovery")).containsKey("next_actions"));
-        assertThat(((TextContent) actual.content().getFirst()).text(), 
is(JsonEngine.toJsonString(actualPayload)));
+        assertThat(((TextContent) actual.content().getFirst()).text(), 
is(JsonEngine.marshal(actualPayload)));
     }
     
     @Test
diff --git 
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/metadata/GovernanceMetadataQueryService.java
 
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/metadata/GovernanceMetadataQueryService.java
index 05a9cd1cfed..7d5029bb94c 100644
--- 
a/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/metadata/GovernanceMetadataQueryService.java
+++ 
b/mcp/core/src/main/java/org/apache/shardingsphere/mcp/core/metadata/GovernanceMetadataQueryService.java
@@ -192,7 +192,7 @@ public final class GovernanceMetadataQueryService {
             return new RedactedValue(value, false);
         }
         try {
-            return redactNested(JsonEngine.fromJsonString(text, Object.class));
+            return redactNested(JsonEngine.unmarshal(text, Object.class));
         } catch (final JsonException ignored) {
             return new RedactedValue(value, false);
         }
diff --git 
a/mcp/registry/src/main/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommand.java
 
b/mcp/registry/src/main/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommand.java
index bcf75b1c5dc..8be63c543b9 100644
--- 
a/mcp/registry/src/main/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommand.java
+++ 
b/mcp/registry/src/main/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommand.java
@@ -81,7 +81,7 @@ public final class MCPRegistryMetadataCommand {
      */
     public static void execute(final String... args) throws IOException {
         CommandOptions options = parseOptions(args);
-        Map<String, Object> server = 
JsonEngine.fromJsonString(Files.readString(options.path()), new 
JsonTypeReference<Map<String, Object>>() {
+        Map<String, Object> server = 
JsonEngine.unmarshal(Files.readString(options.path()), new 
JsonTypeReference<Map<String, Object>>() {
         });
         if (!options.validateOnly()) {
             
ShardingSpherePreconditions.checkState(!options.version().isBlank() && 
!options.identifier().isBlank(),
@@ -93,7 +93,7 @@ public final class MCPRegistryMetadataCommand {
             
MCPDockerfileMetadataValidator.validate(Path.of(options.dockerfilePath()), 
String.valueOf(server.get("name")));
         }
         if (!options.validateOnly()) {
-            Files.writeString(options.path(), 
JsonEngine.toPrettyJsonString(server) + System.lineSeparator());
+            Files.writeString(options.path(), JsonEngine.marshalPretty(server) 
+ System.lineSeparator());
         }
     }
     
diff --git 
a/mcp/registry/src/test/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommandTest.java
 
b/mcp/registry/src/test/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommandTest.java
index 067510e2852..68e55894f71 100644
--- 
a/mcp/registry/src/test/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommandTest.java
+++ 
b/mcp/registry/src/test/java/org/apache/shardingsphere/mcp/registry/MCPRegistryMetadataCommandTest.java
@@ -236,7 +236,7 @@ class MCPRegistryMetadataCommandTest {
     
     private Path createServerJson(final Map<String, Object> server) throws 
IOException {
         Path result = tempDir.resolve("server.json");
-        Files.writeString(result, JsonEngine.toPrettyJsonString(server));
+        Files.writeString(result, JsonEngine.marshalPretty(server));
         return result;
     }
     
@@ -278,7 +278,7 @@ class MCPRegistryMetadataCommandTest {
     }
     
     private Map<String, Object> readServerJson(final Path serverPath) throws 
IOException {
-        return JsonEngine.fromJsonString(Files.readString(serverPath), new 
JsonTypeReference<Map<String, Object>>() {
+        return JsonEngine.unmarshal(Files.readString(serverPath), new 
JsonTypeReference<Map<String, Object>>() {
         });
     }
     
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowAlgorithmUtils.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowAlgorithmUtils.java
index 76eb9844e37..421daf39c4b 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowAlgorithmUtils.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/workflow/service/WorkflowAlgorithmUtils.java
@@ -187,7 +187,7 @@ public final class WorkflowAlgorithmUtils {
     }
     
     private static Map<String, String> parseJSONPropertyString(final String 
value) {
-        return createPropertyMap(JsonEngine.fromJsonString(value, 
JSON_PROPERTY_MAP_TYPE));
+        return createPropertyMap(JsonEngine.unmarshal(value, 
JSON_PROPERTY_MAP_TYPE));
     }
     
     private static boolean isJSONPropertyMap(final String value) {
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/tool/result/SQLExecutionColumnDefinitionTest.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/tool/result/SQLExecutionColumnDefinitionTest.java
index 54ea38acd05..84ee211cfcf 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/tool/result/SQLExecutionColumnDefinitionTest.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/tool/result/SQLExecutionColumnDefinitionTest.java
@@ -27,7 +27,7 @@ class SQLExecutionColumnDefinitionTest {
     
     @Test
     void assertJsonFieldNames() {
-        assertThat(JsonEngine.toJsonString(new 
SQLExecutionColumnDefinition("order_id", "INTEGER", "int4", false)),
+        assertThat(JsonEngine.marshal(new 
SQLExecutionColumnDefinition("order_id", "INTEGER", "int4", false)),
                 
is("{\"columnName\":\"order_id\",\"logicalType\":\"INTEGER\",\"nativeType\":\"int4\",\"nullable\":false}"));
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutor.java
index 0961ac83487..8a0f3f48aed 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutor.java
@@ -74,7 +74,7 @@ public final class ExportStorageNodesExecutor implements 
DistSQLQueryExecutor<Ex
         storageNodes.setStorageNodes(null == sqlStatement.getDatabaseName()
                 ? getAllStorageNodes(metaData)
                 : 
generateDatabaseExportStorageNodesData(metaData.getDatabase(sqlStatement.getDatabaseName())));
-        return JsonEngine.toJsonString(storageNodes);
+        return JsonEngine.marshal(storageNodes);
     }
     
     private Map<String, Collection<ExportedStorageNode>> 
getAllStorageNodes(final ShardingSphereMetaData metaData) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutor.java
index a8225148994..901a4f37219 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/imports/ImportMetaDataExecutor.java
@@ -40,7 +40,7 @@ public final class ImportMetaDataExecutor implements 
DistSQLUpdateExecutor<Impor
     @Override
     public void executeUpdate(final ImportMetaDataStatement sqlStatement, 
final ContextManager contextManager) {
         String jsonMetaDataConfig = sqlStatement.getFilePath().isPresent() ? 
getMetaDataFromFile(sqlStatement) : getMetaDataFromConsole(sqlStatement);
-        ExportedClusterInfo exportedClusterInfo = 
JsonEngine.fromJsonString(jsonMetaDataConfig, ExportedClusterInfo.class);
+        ExportedClusterInfo exportedClusterInfo = 
JsonEngine.unmarshal(jsonMetaDataConfig, ExportedClusterInfo.class);
         ExportedMetaData exportedMetaData = exportedClusterInfo.getMetaData();
         new 
MetaDataImportExecutor(contextManager).importClusterConfigurations(exportedMetaData);
     }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutor.java
index e88a7d2fdc1..dc84786d5cd 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutor.java
@@ -49,7 +49,7 @@ public final class ParseDistSQLExecutor implements 
DistSQLQueryExecutor<ParseSta
     @Override
     public Collection<LocalDataQueryResultRow> getRows(final ParseStatement 
sqlStatement, final ContextManager contextManager) {
         SQLStatement parsedSqlStatement = 
parseSQL(contextManager.getMetaDataContexts().getMetaData(), sqlStatement);
-        return Collections.singleton(new 
LocalDataQueryResultRow(parsedSqlStatement.getClass().getSimpleName(), 
JsonEngine.toJsonString(parsedSqlStatement)));
+        return Collections.singleton(new 
LocalDataQueryResultRow(parsedSqlStatement.getClass().getSimpleName(), 
JsonEngine.marshal(parsedSqlStatement)));
     }
     
     private SQLStatement parseSQL(final ShardingSphereMetaData metaData, final 
ParseStatement sqlStatement) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGenerator.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGenerator.java
index 9fb0aabaf67..226433b3f04 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGenerator.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGenerator.java
@@ -62,7 +62,7 @@ public final class ClusterExportMetaDataGenerator {
         ExportedClusterInfo exportedClusterInfo = new ExportedClusterInfo();
         exportedClusterInfo.setMetaData(exportedMetaData);
         generateSnapshotInfo(metaData, exportedClusterInfo);
-        return JsonEngine.toJsonString(exportedClusterInfo);
+        return JsonEngine.marshal(exportedClusterInfo);
     }
     
     private Map<String, String> generatorDatabasesExportData() {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
index acf530cbc9d..653d8ef02f5 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportMetaDataExecutorTest.java
@@ -334,7 +334,7 @@ class ExportMetaDataExecutorTest {
     }
     
     private ExportedClusterInfo convertToExportedClusterInfo(final String 
base64String) {
-        return JsonEngine.fromJsonString(new 
String(Base64.decodeBase64(base64String)), ExportedClusterInfo.class);
+        return JsonEngine.unmarshal(new 
String(Base64.decodeBase64(base64String)), ExportedClusterInfo.class);
     }
     
     private YamlProxyServerConfiguration convertToYamlProxyServerConfig(final 
String serverConfig) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutorTest.java
index 14c174e9f9e..dbdb59bd311 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/ParseDistSQLExecutorTest.java
@@ -72,7 +72,7 @@ class ParseDistSQLExecutorTest {
         handler.next();
         SQLStatement sqlStatement = 
sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).parse(sql, false);
         assertThat(new 
LinkedList<>(handler.getRowData().getData()).getFirst(), is("SelectStatement"));
-        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonEngine.toJsonString(sqlStatement)));
+        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonEngine.marshal(sqlStatement)));
     }
     
     @Test
@@ -84,7 +84,7 @@ class ParseDistSQLExecutorTest {
         handler.execute();
         handler.next();
         SQLStatement sqlStatement = 
sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class, 
"PostgreSQL")).parse(sql, false);
-        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonEngine.toJsonString(sqlStatement)));
+        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonEngine.marshal(sqlStatement)));
     }
     
     @Test
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGeneratorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGeneratorTest.java
index 20dda83423d..a0fddc1ea05 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGeneratorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/ClusterExportMetaDataGeneratorTest.java
@@ -61,7 +61,7 @@ class ClusterExportMetaDataGeneratorTest {
     @Test
     void assertGenerateJsonFormatWithoutData() {
         ContextManager contextManager = 
mockContextManager(Collections.emptyList(), mockGlobalClockRule(false, null), 
Collections.singleton(mockDatabaseWithoutSources("empty_db")), new 
Properties());
-        ExportedClusterInfo actual = JsonEngine.fromJsonString(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
+        ExportedClusterInfo actual = JsonEngine.unmarshal(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
         ExportedMetaData actualMetaData = actual.getMetaData();
         assertTrue(actualMetaData.getDatabases().isEmpty());
         assertThat(actualMetaData.getProps(), is(""));
@@ -77,7 +77,7 @@ class ClusterExportMetaDataGeneratorTest {
         when(provider.getCurrentTimestamp()).thenReturn(123L);
         ContextManager contextManager = 
mockContextManager(Collections.singletonList(new 
GlobalClockRuleConfiguration("TSO", "LOCAL", true, new Properties())),
                 mockGlobalClockRule(true, provider), 
Arrays.asList(mockDatabaseWithoutSources("skip_db"), 
mockDatabaseWithStorage()), props);
-        ExportedClusterInfo actual = JsonEngine.fromJsonString(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
+        ExportedClusterInfo actual = JsonEngine.unmarshal(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
         ExportedMetaData metaData = actual.getMetaData();
         assertTrue(metaData.getDatabases().containsKey("logic_db"));
         assertThat(metaData.getDatabases().size(), is(1));
@@ -92,7 +92,7 @@ class ClusterExportMetaDataGeneratorTest {
     void assertGenerateJsonFormatWithSnapshotFallback() {
         ContextManager contextManager = 
mockContextManager(Collections.singletonList(new 
GlobalClockRuleConfiguration("TSO", "LOCAL", true, new Properties())),
                 mockGlobalClockRule(true, null), 
Collections.singleton(mockDatabaseWithStorage()), new Properties());
-        ExportedClusterInfo actual = JsonEngine.fromJsonString(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
+        ExportedClusterInfo actual = JsonEngine.unmarshal(new 
ClusterExportMetaDataGenerator(contextManager).generateJsonFormat(), 
ExportedClusterInfo.class);
         assertThat(actual.getSnapshotInfo().getCsn(), is("0"));
     }
     
diff --git 
a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/asserts/MetricAssert.java
 
b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/asserts/MetricAssert.java
index 15aba7f9601..786baa40ce5 100644
--- 
a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/asserts/MetricAssert.java
+++ 
b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/asserts/MetricAssert.java
@@ -59,7 +59,7 @@ public final class MetricAssert {
     private static void assertMetaData(final String metaDataURL, final 
MetricE2ETestCase expected) {
         String metricName = getMetricName(expected);
         String metaDataQueryURL = String.join("", metaDataURL, "?metric=", 
encode(metricName));
-        MetricsMetaDataResponse actual = 
JsonEngine.fromJsonString(AgentE2EHttpUtils.query(metaDataQueryURL), 
MetricsMetaDataResponse.class);
+        MetricsMetaDataResponse actual = 
JsonEngine.unmarshal(AgentE2EHttpUtils.query(metaDataQueryURL), 
MetricsMetaDataResponse.class);
         assertThat(String.format("Metric `%s` status is not success, error is 
`%s`", expected.getMetricName(), actual.getError()), actual.getStatus(), 
is("success"));
         assertFalse(actual.getData().isEmpty(), String.format("Metric `%s` is 
empty.", expected.getMetricName()));
         Collection<Metric> metrics = actual.getData().get(metricName);
@@ -81,7 +81,7 @@ public final class MetricAssert {
     @SneakyThrows(IOException.class)
     private static void assertQueryData(final String queryURL, final 
MetricQueryAssertion expected) {
         String queryURLWithParam = String.join("", queryURL, "?query=", 
encode(expected.getQuery()));
-        MetricsQueryResponse actual = 
JsonEngine.fromJsonString(AgentE2EHttpUtils.query(queryURLWithParam), 
MetricsQueryResponse.class);
+        MetricsQueryResponse actual = 
JsonEngine.unmarshal(AgentE2EHttpUtils.query(queryURLWithParam), 
MetricsQueryResponse.class);
         assertThat(String.format("The query `%s` is not success, error message 
is `%s`", expected.getQuery(), actual.getError()), actual.getStatus(), 
is("success"));
         assertFalse(actual.getData().getResult().isEmpty(), String.format("The 
query `%s` is empty.", expected.getQuery()));
         actual.getData().getResult().forEach(each -> assertMetricData(each, 
expected));
diff --git 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/JaegerSpanAssert.java
 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/JaegerSpanAssert.java
index 10a1cefdb45..72f441c249f 100644
--- 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/JaegerSpanAssert.java
+++ 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/JaegerSpanAssert.java
@@ -67,7 +67,7 @@ public final class JaegerSpanAssert {
     
     private static void assertTagValue(final String jaegerUrl, final 
JaegerE2ETestCase expected, final JaegerTagAssertion expectedTagCase) {
         String queryURL = 
String.format("%s/api/traces?service=%s&operation=%s&tags=%s&limit=%s", 
jaegerUrl, encode(expected.getServiceName()),
-                encode(expected.getSpanName()), 
encode(JsonEngine.toJsonString(ImmutableMap.of(expectedTagCase.getTagKey(), 
expectedTagCase.getTagValue()))), 1000);
+                encode(expected.getSpanName()), 
encode(JsonEngine.marshal(ImmutableMap.of(expectedTagCase.getTagKey(), 
expectedTagCase.getTagValue()))), 1000);
         assertFalse(queryTraceResponses(queryURL).isEmpty(),
                 String.format("The tag `%s`=`%s` does not exist in `%s` span", 
expectedTagCase.getTagKey(), expectedTagCase.getTagValue(), 
expected.getSpanName()));
     }
@@ -79,6 +79,6 @@ public final class JaegerSpanAssert {
     
     @SneakyThrows(IOException.class)
     private static Collection<JaegerTraceResponseData> 
queryTraceResponses(final String queryURL) {
-        return JsonEngine.fromJsonString(AgentE2EHttpUtils.query(queryURL), 
JaegerTraceResponse.class).getData();
+        return JsonEngine.unmarshal(AgentE2EHttpUtils.query(queryURL), 
JaegerTraceResponse.class).getData();
     }
 }
diff --git 
a/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/ZipkinSpanAssert.java
 
b/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/ZipkinSpanAssert.java
index 86adb6b7a0b..4054789de76 100644
--- 
a/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/ZipkinSpanAssert.java
+++ 
b/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/ZipkinSpanAssert.java
@@ -75,7 +75,7 @@ public final class ZipkinSpanAssert {
     
     @SneakyThrows(IOException.class)
     private static Collection<ZipkinSpanResponse> queryTraceResponses(final 
ZipkinE2ETestCase expected, final String url) {
-        List<List<ZipkinSpanResponse>> result = 
JsonEngine.fromJsonString(AgentE2EHttpUtils.query(url), new 
JsonTypeReference<List<List<ZipkinSpanResponse>>>() {
+        List<List<ZipkinSpanResponse>> result = 
JsonEngine.unmarshal(AgentE2EHttpUtils.query(url), new 
JsonTypeReference<List<List<ZipkinSpanResponse>>>() {
         });
         return 
result.stream().findFirst().orElse(Collections.emptyList()).stream().filter(each
 -> 
expected.getSpanName().equalsIgnoreCase(each.getName())).collect(Collectors.toList());
     }
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMConversationRunner.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMConversationRunner.java
index 7af96a9cef8..0a075ce8447 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMConversationRunner.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMConversationRunner.java
@@ -188,7 +188,7 @@ public final class LLMConversationRunner {
             artifacts.addTrace(new MCPInteractionTraceRecord(
                     artifacts.nextSequence(), modelTurn, 
getActionKind(each.getName()), MCPInteractionTraceRecord.MODEL_TOOL_CALL_ORIGIN,
                     each.getName(), getTraceArguments(each.getName(), 
arguments), response, true, latencyMillis));
-            messages.add(LLMChatMessage.tool(each.getId(), 
JsonEngine.toJsonString(response)));
+            messages.add(LLMChatMessage.tool(each.getId(), 
JsonEngine.marshal(response)));
         }
         return Optional.empty();
     }
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPJsonValues.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPJsonValues.java
index d2b42122010..1e4ab391e41 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPJsonValues.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/LLMMCPJsonValues.java
@@ -30,7 +30,7 @@ final class LLMMCPJsonValues {
     
     static Map<String, Object> parseToolArguments(final String argumentsJson) {
         try {
-            return JsonEngine.fromJsonString(argumentsJson, new 
JsonTypeReference<Map<String, Object>>() {
+            return JsonEngine.unmarshal(argumentsJson, new 
JsonTypeReference<Map<String, Object>>() {
             });
         } catch (final JsonException ex) {
             throw new IllegalArgumentException("Invalid tool arguments JSON.", 
ex);
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/artifact/LLMConversationArtifactWriter.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/artifact/LLMConversationArtifactWriter.java
index 2f281a6abdf..ffec90296c7 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/artifact/LLMConversationArtifactWriter.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/artifact/LLMConversationArtifactWriter.java
@@ -50,15 +50,15 @@ public final class LLMConversationArtifactWriter {
     public void write(final Path artifactDirectory, final Result 
conversationResult, final Map<String, Object> runtimeEvidence,
                       final Collection<String> sensitiveValues) throws 
IOException {
         validateRuntimeEvidence(runtimeEvidence);
-        writeContent(artifactDirectory.resolve("run-context.json"), 
JsonEngine.toJsonString(createRunContext(conversationResult, runtimeEvidence)), 
sensitiveValues);
+        writeContent(artifactDirectory.resolve("run-context.json"), 
JsonEngine.marshal(createRunContext(conversationResult, runtimeEvidence)), 
sensitiveValues);
         writeContent(artifactDirectory.resolve("system-prompt.md"), 
conversationResult.systemPrompt(), sensitiveValues);
         writeContent(artifactDirectory.resolve("question.txt"), 
conversationResult.scenario().question(), sensitiveValues);
         writeContent(artifactDirectory.resolve("answer.txt"), 
conversationResult.actualAnswer(), sensitiveValues);
         writeContent(artifactDirectory.resolve("raw-model-output.txt"),
                 String.join(System.lineSeparator() + System.lineSeparator(), 
conversationResult.evidence().rawModelOutputs()), sensitiveValues);
-        writeContent(artifactDirectory.resolve("available-tools.json"), 
JsonEngine.toJsonString(conversationResult.evidence().toolDefinitions()), 
sensitiveValues);
-        writeContent(artifactDirectory.resolve("interaction-trace.json"), 
JsonEngine.toJsonString(conversationResult.evidence().interactionTrace()), 
sensitiveValues);
-        writeContent(artifactDirectory.resolve("assertion-report.json"), 
JsonEngine.toJsonString(conversationResult.assertionReport()), sensitiveValues);
+        writeContent(artifactDirectory.resolve("available-tools.json"), 
JsonEngine.marshal(conversationResult.evidence().toolDefinitions()), 
sensitiveValues);
+        writeContent(artifactDirectory.resolve("interaction-trace.json"), 
JsonEngine.marshal(conversationResult.evidence().interactionTrace()), 
sensitiveValues);
+        writeContent(artifactDirectory.resolve("assertion-report.json"), 
JsonEngine.marshal(conversationResult.assertionReport()), sensitiveValues);
     }
     
     private Map<String, Object> createRunContext(final Result 
conversationResult, final Map<String, Object> runtimeEvidence) {
diff --git 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/client/LLMChatModelClient.java
 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/client/LLMChatModelClient.java
index f0d93c5d3fe..c750453ef21 100644
--- 
a/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/client/LLMChatModelClient.java
+++ 
b/test/e2e/mcp/src/test/java/org/apache/shardingsphere/test/e2e/mcp/llm/conversation/client/LLMChatModelClient.java
@@ -128,7 +128,7 @@ public final class LLMChatModelClient {
                 .timeout(Duration.ofSeconds(timeoutSeconds))
                 .header("Authorization", "Bearer " + config.getApiKey())
                 .header("Content-Type", "application/json")
-                
.POST(HttpRequest.BodyPublishers.ofString(JsonEngine.toJsonString(requestPayload)))
+                
.POST(HttpRequest.BodyPublishers.ofString(JsonEngine.marshal(requestPayload)))
                 .build();
         return httpClient.send(request, HttpResponse.BodyHandlers.ofString());
     }
@@ -233,7 +233,7 @@ public final class LLMChatModelClient {
     
     private Map<String, Object> parseJsonObject(final String responseBody, 
final String errorMessage) {
         try {
-            return JsonEngine.fromJsonString(responseBody, new 
JsonTypeReference<Map<String, Object>>() {
+            return JsonEngine.unmarshal(responseBody, new 
JsonTypeReference<Map<String, Object>>() {
             });
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/loader/strategy/type/GitHubTestParameterLoadStrategy.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/loader/strategy/type/GitHubTestParameterLoadStrategy.java
index 1f6a87841d5..874bd7fe320 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/loader/strategy/type/GitHubTestParameterLoadStrategy.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/loader/strategy/type/GitHubTestParameterLoadStrategy.java
@@ -51,7 +51,7 @@ public final class GitHubTestParameterLoadStrategy implements 
ExternalTestParame
         if (content.isEmpty()) {
             return Collections.emptyList();
         }
-        Object rootNode = JsonEngine.fromJsonString(content, Object.class);
+        Object rootNode = JsonEngine.unmarshal(content, Object.class);
         return rootNode instanceof Collection ? 
getFileSummariesByArray((Collection<?>) rootNode) : getFileSummaries((Map<?, 
?>) rootNode);
     }
     

Reply via email to