【问题标题】:How to check invalid json input in mule?如何检查mule中的无效json输入?
【发布时间】:2019-08-23 11:21:37
【问题描述】:

如何检查输入 JSON 格式是否正确或不在 mule 中 我的输入 JSON 是

{
    "received": "3538410873",
    "RmaNumber": "93321"2",
    "TrackingNumber": "324823478",
    "DeviceMake": "samsung",
    "DeviceModel": "j7 prime",
    "DeviceColor": "black"
}

我尝试了 is-json-filter 但它不起作用

<message-filter onUnaccepted="noJsonFlow" throwOnUnaccepted="false">
    <json:is-json-filter />
</message-filter>

我需要为无效的 JSON 输入显示无效的 JSON 格式

【问题讨论】:

    标签: json mule anypoint-studio


    【解决方案1】:

    您可以使用多种替代方法,每种方法都有一些小缺点。

    您可以使用带有空架构定义的(即仅包含{} 的文件)。它会在我的测试中检测到错误,并且不会拒绝有效的 JSON。对我来说,这似乎有点骇人听闻。

    另一种选择是使用 DataWeave 转换器来处理相同的负载。它将在转换前验证。缺点是它将转换为等效的 ,这有点矫枉过正,而且性能较低,因为它会做双重工作,但也可能与原始格式略有不同。这对您来说可能是也可能不是问题。您可以通过将结果分配给 flowVar 来避免它。 示例:

            <dw:transform-message doc:name="Transform Message">
                <dw:input-payload mimeType="application/json"/> <!-- only needed if the mimetype is not set for the payload -->
                <dw:set-payload><![CDATA[%dw 1.0
    %output application/json
    ---
    payload]]></dw:set-payload>
            </dw:transform-message>
    

    第三个选项是创建您自己的custom validator 并使用 Java 库来根据需要验证 JSON。我看到的唯一缺点是它需要更多的工作,因为它不是 OOTB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2017-09-09
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多