dataweave - 在 Mulesoft Dataweave 2.0 中有没有一种方法可以测试输入字符串是 XML 还是 JSON 格式?
问题描述
我的 API 有一个字符串输入。它可以是 XML 或 JSON,我需要对其使用 Read 函数将其解析为 JSON。MuleSoft 4 或 Dataweave 2 中确定字符串格式的最佳方法是什么?
也许我可以编写一个函数 isXML(String inputString) 或 isJSON(String inputString)。
到目前为止,我有一些不雅的东西。我正在尝试将输入解析为 XML 并捕获任何解析异常。在 catch 中,我将尝试将其解析为 JSON。我想这不是一个可怕的解决方案。
解决方案
尝试这个:
%dw 2.0
output application/dw
var xml = "<test>XML</test>"
var json = '{"test":1, "test2": 2}'
var test = xml
---
// Try to read it as a JSON
dw::Runtime::try(() -> read(test,"application/json"))
// Now try to read it as an XML
dw::Runtime::orElseTry(() -> read(test,"application/xml"))
// You have data that are neither of XML or JSON
dw::Runtime::orElse("Not XML or JSON")
推荐阅读
- javascript - console.log() 显示正确的值,但是当将其分配给变量时,它是未定义的 - Angular,firestore
- php - 如何正确使用带有 PHP 的 $_COOKIE 的 foreach 循环?
- javascript - 从 ReactJS 中的导入函数更改类状态
- javascript - 如何删除输入字段的边框底部?
- nginx - 为什么nginx不缓存?
- python - While 循环不会使用嵌套的 Elif 语句运行?
- jira - 无法连接 JIRA 云
- reactjs - Firebase + Nextjs - 用户会话共享
- ruby-on-rails - 如何通过 Rails 中的嵌套表单传递 account_id
- python - 创建函数时如何处理 NaT?