gpt4 book ai didi

java - 如何从 Mule 4 中的文件中读取 JSON 字符串

转载 作者:行者123 更新时间:2023-12-02 19:57:37 26 4
gpt4 key购买 nike

我正在尝试创建一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com