У меня есть запрос JSON, такой как
{
"aaaa": []
}
Сначала мне нужно проверить, существует ли aaaa
в моей полезной нагрузке запроса, если существует, как указано выше, мне нужно добавить jsonObject с фиктивными атрибутами и значениями, такими как:
{
"aaaa": [
{
"@c": "test"
"a": "99999",
"b": "test",
"c": "test"
}
],
Если aaaa
не существует в моей полезной нагрузке, мне нужно добавить его с его фиктивными атрибутами и значениями. Таким образом, если полезная нагрузка равна {}
, после xslt это должен быть тот же JSON, что и выше. В своем преобразовании я попытался решить эту проблему следующим образом:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//jsonObject">
<xsl:copy>
<xsl:if test="//jsonObject/not(aaaa)">
<aaaa>
<xsl:attribute name="c">test</xsl:attribute>
<a>99999</a>
<b>test</b>
<c>test</c>
</aaaa>
</xsl:if>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//jsonObject/aaaa">
<xsl:copy>
<xsl:attribute name="c">test</xsl:attribute>
<a>99999</a>
<b>test</b>
<c>test</c>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
С помощью этого запроса:
{
"aaaa": []
}
Я не вижу массив aaaa
и его фиктивные атрибуты после преобразования.
Спасибо за любой совет!