不带属性的Json字符串数组转换XSLT

问题描述 投票:0回答:1

正如标题所说,我需要一些帮助来弄清楚如何将没有属性的 JSON 数组转换为 XSL。

(1)输入:

{
  "Body": {
    "name": "jhon",
    "ids": ["a", "b"]
  }
}

(2) 预期输出应该具有这种结构。

{
  "name": "jhon",
  "ids": ["a", "b"]
}

我尝试过这样改造。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:strip-space elements="*"/>
    <xsl:output method="text"/>
    <xsl:variable name="path" select="*/Body"/>
    <xsl:template match="/">{
        "name" : "<xsl:value-of select="$path/name"/>",
        "ids" : "<xsl:value-of select="$path/ids"/>"
    }
</xsl:template>
</xsl:stylesheet>

但是 Datapower 无法转换 json 数组 [ids],而是返回此消息 “处理消息时发生错误”和此输出 (3):

{
  "Body": {
    "Fault": {
      "faultcode": "",
      "faultactor": "",
      "detail": {
        "IntegrationError": ""
      }
    }
  }
}

如果我从请求中删除“ids”字段并转换 XSL,它就可以正常工作。这就是为什么我相信我没有正确转换数组。

arrays json xslt transform ibm-datapower
1个回答
0
投票

你需要使用 for-each for id 在线查看。

© www.soinside.com 2019 - 2024. All rights reserved.