- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 MUnit 测试,通过将有效负载设置为我保存在文件中的 JSON 对象来模拟 HTTP 请求。在 Mule 3 中,我只需执行 getResource('fileName.json').asString()
即可,效果很好。但在 Mule 4 中,我无法静态调用 getResource。
我找到了forum post on the Mulesoft forums这建议我使用MunitTools::getResourceAsString
。当我运行测试时,我确实看到了 JSON 对象,但包含所有 \n
和 \r
字符以及转义所有的 \
的引号。显然这意味着我的 JSON 格式不再正确。
理想情况下,我想找到 MunitTools 的引用,以便我可以看到可以调用的函数列表,也许找到一个不添加转义字符的函数,但我没有任何运气。如果有人知道我可以引用的一些引用文档,请告诉我。
由于无法找到一种方法来返回没有额外字符的数据,因此我尝试通过 dataweave 替换它们。替换 \n
和 \r
时这很好,但因为每个双引号前面还有更多 \
,所以我可以'似乎没有办法让这些消失。
如果我这样做...
replace (/\/) with ("")
...我收到错误。一位同事建议定位每个 \"
并将其替换为 "
,但这是一个问题,因为这给了我 """
。解决这个问题,我已经尝试过
replace(/\"/) with "\""
...这不会导致任何错误,但由于某种原因,它将 \
作为文字读取,因此它用自身替换了原始字符串。我也尝试过... 用。。。来代替 '”'...但这也会导致错误
我也愿意接受任何其他解决方案。
谢谢
--德鲁
最佳答案
我也有同样的担忧,所以我开始使用 readUrl()
方法。这是一个 DataWeave 方法,因此您应该能够在任何 MUnit 处理器中使用它。这是我如何在设置事件处理器中使用它的示例。它读取 JSON 文件,然后根据我自己的需要将其转换为 Java,但您可以根据您的需要将 java 替换为 JSON。
<munit:set-event doc:name="Set Event" doc:id="e7b1da19-f746-4964-a7ae-c23aedce5e6f" >
<munit:payload mediaType="application/java" value="#[output application/java --- readUrl('classpath://singleItemRequest.json','application/json')]"/>
</munit:set-event>
这是 readUrl https://docs.mulesoft.com/mule-runtime/4.2/dw-core-functions-readurl 的文档
希望有帮助!
关于java - 如何从 Mule 4 中的文件中读取 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56693192/
我是一名优秀的程序员,十分优秀!