Для этого требования мы можем использовать некоторые действия в приложении logi c, чтобы получить "a12,b45,c78"
и затем разделить их на массив, а затем преобразовать их из json в xml. Но я думаю, что это решение слишком сложное, нам может потребоваться выполнить много операций в приложении logi c. Таким образом, в вашем приложении logi c вы можете сделать то, что делали раньше, и получить результат <demo>a12,b45,c78</demo>
. Затем используйте xslt map для преобразования ths xml в нужный вам формат. Пожалуйста, обратитесь к следующим шагам:
1. Я делаю ту же операцию, что вы упомянули в своем вопросе.
2. Нам нужно создать шаблон xslt, как показано ниже:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="demo/text()" name="tokenize">
<xsl:param name="separator" select="','"/>
<xsl:for-each select="tokenize(.,$separator)">
<Value>
<xsl:value-of select="normalize-space(.)"/>
</Value>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
3. Сохраните шаблон xslt как тип .xslt
и загрузите его на карту своей учетной записи интеграции. Когда вы выполняете загрузку, выберите «Тип карты» как «XSLT 2.0».
4. Используйте преобразование XML, чтобы выполнить преобразование (выберите карту, которую вы загрузили выше ).
5. После этого мы можем получить желаемый результат.
Обновление:
Вы можете использовать шаблон жидкости, как показано ниже:
{% assign arr = content.demo | Split: "," %}
{
{% if content.status == "1" %}
"status": "done",
{% else %}
"status": "undone",
{% endif %}
"demo": {
"Value":[
{% for item in arr %}
"{{item}}",
{% endfor %}
]
}
}
Затем получите json данные, которые вы хотите:
{
"status": "done",
"demo": {
"Value": [
"a12",
"b45",
"c78"
]
}
}