如何检查输入的JSON格式正确或是否在m子中 我输入的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格式
答案 0 :(得分:0)
您可以使用几种替代方法,每一种都有一些小缺点。
您可以将与空模式定义一起使用(即,仅包含{}
的文件)。它将在我的测试中检测到错误,并且不会拒绝有效的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,因此需要做更多的工作。