В Mulesoft Dataweave 2.0 есть способ проверить, является ли входная строка в формате XML или JSON? - PullRequest
2 голосов
/ 22 октября 2019

У меня есть строковые данные для моего API. Это может быть либо XML, либо JSON, и мне нужно использовать функцию Read для его анализа в JSON. Как лучше всего в MuleSoft 4 или Dataweave 2 определить, в каком формате находится строка?

Может быть, я мог бы написать функцию isXML (String inputString) или isJSON (String inputString).

На данный момент у меня есть что-то не элегантное. Я пытаюсь проанализировать входные данные как XML и перехватывать любые исключения при разбореВнутри улова я попытаюсь разобрать его как JSON. Я думаю, это не ужасное решение.

1 Ответ

4 голосов
/ 22 октября 2019

Попробуйте это:

%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")
...