Я пытаюсь понять поведение DataWeave v1.0, когда дело доходит до сопоставления объектов в корневом массиве JSON.
На этом этапе я просто хочу отобразить каждый элемент в массиве как естьбез сопоставления каждого отдельного поля элемента.Мне нужно сделать это для каждого элемента в массиве, потому что позже я хочу отредактировать некоторые полей, но, поскольку их потенциально много, я не хочу, чтобы накладные расходы отображались по одному..
Это моя передача данных:
%dw 1.0
%output application/json
---
payload map {
($)
}
Это мой ввод:
[
{
"MyString": "ABCD",
"MyNumber": 123,
"AnObject": {
"MyBool": false,
"MyNestedObject": {
"MyNestedString": "DEF"
}
}
}
]
Я хочу, чтобы мойвывод должен быть (на данном этапе) точно таким же, как мой ввод.
Вместо этого мой ( неправильный ) вывод:
[
{
"MyString": "ABCD",
"MyNumber": 123,
"MyBool": false,
"MyNestedObject": {
"MyNestedString": "DEF"
}
}
]
Как видите, объект AnObject
отсутствует, хотя его дочерние элементы остаются.
Все хуже, если вход содержит массивы, например, вход:
[
{
"MyString": "ABCD",
"MyNumber": 123,
"AnObject": {
"MyBool": false,
"MyNestedObject": {
"MyNestedString": "DEF"
}
},
"AnArray": [
{
"Title": "An array item",
"Description": "Pretty standard"
}
]
}
]
Выдает ошибку:
Cannot coerce a :array to a :object.
Я поиграл с mapObject
Операция над элементами корневого массива тоже, но я всегда сталкиваюсь с тем же поведением.Может ли кто-нибудь объяснить, что здесь происходит, и показать мне, как я могу динамически копировать каждый элемент в корневой полезной нагрузке?
Время выполнения Mule - 3.9.1.