java如何从Mule 4中的文件中读取JSON字符串
我试图创建一个MUnit测试,通过将有效负载设置为我保存在文件中的JSON对象来模拟HTTP请求。在Mule 3中,我只需要做^{
我发现一个forum post on the Mulesoft forums建议我使用MunitTools::getResourceAsString
。当我运行测试时,我确实看到了JSON对象,但它包含所有的\n
和\r
字符,以及一个转义所有引号的\
。显然,这意味着我的JSON格式不再正确
理想情况下,我希望能找到MunitTools的参考,这样我就可以看到我可以调用的函数列表,也许还能找到一个不添加转义字符的函数,但我运气不好。如果有人知道我可以参考的参考文件,请告诉我
由于无法找到一种没有额外字符的返回数据的方法,我尝试通过dataweave替换它们。当替换\n
和\r
时,这很好,但因为在每个双引号前面还有更多的\
,我似乎无法让它们消失
如果我这么做
replace (/\/) with ("")
。。。我犯了个错误。一位同事建议将每个\"
作为目标,并用"
替换它们,但这是一个问题,因为这给了我"""
。为了绕开这件事,我试过
replace(/\"/) with "\""
。。。它不会导致任何错误,但出于某种原因,它会将\
作为一个文本来读取,因此它会用自身替换原始字符串。我也试过。。。
将(/\“/)替换为“'”
...但这也会导致一个错误
我也愿意接受任何其他解决方案
谢谢
--德鲁
# 1 楼答案
我也有同样的担忧,所以我开始使用
readUrl()
方法。这是一种数据编织方法,因此您应该能够在任何MUnit处理器中使用它。下面是我如何在set事件处理器中使用它的一个示例。它读取JSON文件,然后根据我自己的需要将其转换为Java,但您可以根据自己的需要将Java替换为JSON以下是readUrlhttps://docs.mulesoft.com/mule-runtime/4.2/dw-core-functions-readurl的文档
希望有帮助
# 2 楼答案
遵循以下片段(更具体地说是
munit-tools:then-return
标记):它模拟HTTP请求,并使用
read()
函数返回JSON对象