Как сохранить квадратные скобки в одном массиве с помощью логических приложений?

#arrays #azure-logic-apps #xml-to-json

#массивы #azure-logic-apps #xml-to-json

Вопрос:

Я анализирую XML-документ в формате JSON, и, хотя у меня есть тип array, объявленный в схеме json, если в массиве есть только один элемент, он преобразуется в объект, подобный этому.

«ListOfCodes»:{«Codes»:{{«Code»:»111″}}}

но мне нужно это: «ListOfCodes»:{«Codes»:[{«Code»:»111″}]}

У меня есть несколько массивов в документе, и я получаю квадратные скобки только при наличии нескольких массивов. и добавление свойств вручную — это не вариант. Кто-нибудь знает, что я могу изменить, чтобы исправить это в приложении logic?

Комментарии:

1. Не могли бы вы предоставить образец вашего xml? Я протестирую его, чтобы найти, есть ли решение.

2. Добавлен пример XML. Спасибо

Ответ №1:

К сожалению, у нас нет хорошего решения для реализации этого требования в приложении logic. Вот еще один пост, который похож на вашу проблему. Для реализации требования мы можем просто:

1. Используйте действие «Создать», чтобы сгенерировать объект вручную (вручную поместите все свойства и массивы туда, где они нужны, возможно, с помощью действия @array().

2. Вызовите функцию Azure или какой-либо внешний код, который может более конкретно создать допустимый JSON.

Я также пытаюсь протестировать это каким-либо другим способом, таким как use json:Array="true" и use <?xml-multiple?> , но все они терпят неудачу в приложении logic. Поэтому я думаю, что можно использовать только два вышеуказанных решения (упомянутых в этом сообщении). Однако ни один из подходов не подходит.

Комментарии:

1. Спасибо, я решил проблему, преобразовав XML с помощью файла XSLT и преобразовав XML в текст для желаемого вывода json.