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

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


The following commit(s) were added to refs/heads/master by this push:
     new 51ec88b  [FLINK-20773][json] Support to parse unescaped control chars 
in string node
51ec88b is described below

commit 51ec88bd01f5157c154fe49163ec0920f0e44663
Author: V1ncentzzZ <[email protected]>
AuthorDate: Fri Jan 8 12:13:18 2021 +0800

    [FLINK-20773][json] Support to parse unescaped control chars in string node
    
    
    This closes #14508
---
 .../apache/flink/formats/json/JsonRowDataDeserializationSchema.java  | 2 ++
 .../org/apache/flink/formats/json/JsonRowDataSerDeSchemaTest.java    | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/JsonRowDataDeserializationSchema.java
 
b/flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/JsonRowDataDeserializationSchema.java
index a0c4175..ebdad24 100644
--- 
a/flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/JsonRowDataDeserializationSchema.java
+++ 
b/flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/JsonRowDataDeserializationSchema.java
@@ -26,6 +26,7 @@ import org.apache.flink.table.types.logical.DecimalType;
 import org.apache.flink.table.types.logical.RowType;
 import org.apache.flink.table.types.logical.utils.LogicalTypeChecks;
 
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.json.JsonReadFeature;
 import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.DeserializationFeature;
 import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
 import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
@@ -90,6 +91,7 @@ public class JsonRowDataDeserializationSchema implements 
DeserializationSchema<R
         if (hasDecimalType) {
             
objectMapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS);
         }
+        
objectMapper.configure(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(),
 true);
     }
 
     @Override
diff --git 
a/flink-formats/flink-json/src/test/java/org/apache/flink/formats/json/JsonRowDataSerDeSchemaTest.java
 
b/flink-formats/flink-json/src/test/java/org/apache/flink/formats/json/JsonRowDataSerDeSchemaTest.java
index ae3c2c2..633c9b0 100644
--- 
a/flink-formats/flink-json/src/test/java/org/apache/flink/formats/json/JsonRowDataSerDeSchemaTest.java
+++ 
b/flink-formats/flink-json/src/test/java/org/apache/flink/formats/json/JsonRowDataSerDeSchemaTest.java
@@ -700,7 +700,10 @@ public class JsonRowDataSerDeSchemaTest {
                                     "Failed to deserialize JSON 
'{\"id\":\"2019-11-12T18:00:12+0800\"}'."),
                     
TestSpec.json("{\"id\":1,\"factor\":799.929496989092949698}")
                             .rowType(ROW(FIELD("id", INT()), FIELD("factor", 
DECIMAL(38, 18))))
-                            .expect(Row.of(1, new 
BigDecimal("799.929496989092949698"))));
+                            .expect(Row.of(1, new 
BigDecimal("799.929496989092949698"))),
+                    TestSpec.json("{\"id\":\"\tstring field\"}") // test to 
parse control chars
+                            .rowType(ROW(FIELD("id", STRING())))
+                            .expect(Row.of("\tstring field")));
 
     private static Map<String, Integer> createHashMap(
             String k1, Integer v1, String k2, Integer v2) {

Reply via email to