【问题标题】:Handling Unicode character in Mule's dataweave在 Mule 的数据编织中处理 Unicode 字符
【发布时间】:2018-08-23 02:07:27
【问题描述】:

我们有一个DataWeave 表达式,其中的有效负载,对于某些字段,特殊的unicode control characters 即将到来。

这将导致 WeaveExecutionException 并显示以下消息:

执行时出现异常:
"userComment": "CA*2249*0*1763335*54133300896010155

^ 有效载荷@[8:116](行:列)处的意外字符“\u000a”, 预期'"'。

下面是我们得到的有效载荷。在这里,在usercomment 字段中,出现了一个\u000a(换行符):

{
    "dcsId":"11840000000000001",
    "accessToken":"jaskjadkjsa",
    "profile": {
        "comments": {
            "feedback": [{
                "feedBackType":
                    "5",
                    "userComment": "CA*2249*0*1763335*54133300896010155
1" }
                        ]
                    }
                },
    "platform": "iphone"
}

下面是我们在控制台中得到的记录异常:

com.mulesoft.weave.mule.exception.WeaveExecutionException: Exception 
while executing:                                                                 
"userComment": "CA*2249*0*1763335*54133300896010155

^
Unexpected character '\u000a' at payload@[8:116] (line:column), expected 
'"'.

下面是我们正在执行的 DataWeave 脚本:

%dw 1.0
%output application/java
---
payload

DataWeave 不支持 unicode 控制字符吗?

【问题讨论】:

    标签: unicode mule dataweave


    【解决方案1】:

    在 datawave 中使用操作as :string

    在你的情况下:

    "userComment": "CA*2249*0*1763335*54133300896010155 as :string
    

    【讨论】:

      【解决方案2】:

      当您使用 JSON 到 XML 或 XML 到 JSON 进行转换时,请设置Content-Type 'application/json; charset=UTF-8'

      【讨论】:

        【解决方案3】:

        之前有一个相关问题:How to get more information about dataweave exception in muleosft

        据此:您应该转义特殊的“控制 unicode 字符”。

        您的 JSON 中应该包含 \n 而不是换行符。

        另请参阅:How do I handle newlines in JSON?

        详见 JSON 标准; ECMA - 404

        在本文档第 9 页的“字符串”一章中,您可以看到 unicode 控制字符应如何在 JSON 中表示的详细说明。

        JSON 字符串不能包含换行符。您的 JSON 数据格式无效,导致异常。

        据此:您必须确保 unicode 控制字符在您的 JSON 字符串中正确转义。

        【讨论】:

          猜你喜欢
          • 2014-12-05
          • 1970-01-01
          • 2018-12-05
          • 2011-08-11
          • 2013-01-17
          • 2019-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多